2010-05-17 11 views
6
string listOfItemPrices = items.ToSemiColonList(item => string.Format("{0:C}", item.Price.ToString())); 

Sto semplicemente cercando di formattare il prezzo qui a 2 cifre decimali. Ok, quindi string.Format non implementa IFormattable? Ok, non sono sicuro di come aggirare questo in modo da poter formattare il decimale (prezzo) qui.La formattazione è specificata ma l'argomento non è IFormattable

risposta

14

Passando da item.Price.ToString() a String.Format, si passa una stringa , non un decimale.
Poiché le stringhe non possono essere utilizzate con le stringhe di formato, si sta verificando un errore.

È necessario passare il valore Decimal-String.Format rimuovendo .ToString().

+0

sto ottenendo lo stesso con: inFile.setINVQueryDept (string.Format ("{0: # 0.00}", frmCentral.startDept), string.Format ("{0: 0.00} #", frmCentral.endDept)); –

1

Qui non è possibile utilizzare string.format, utilizzato per aggiungere valori formattati in stringhe. per esempio.

String.Format("This is my first formatted string {O:C} and this is my second {0:C}",ADecimal,AnotherDecimal) 

Se si desidera solo il valore di una variabile decimale come una stringa formattata poi basta passare il formattatore stringa al metodo ToString() per esempio

ADecimal.ToString("C"); 
Problemi correlati