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

Estoy simplemente tratando de formatear el precio aquí con 2 decimales. Ok, entonces el string.Format no implementa IFormattable? Ok, no estoy seguro de cómo solucionar esto para poder formatear el decimal (precio) aquí.El formateo está Especificado pero el argumento no es IFormattable

Respuesta

14

Pasando item.Price.ToString() a String.Format, está pasando una cadena , no un decimal.
Dado que las cadenas no se pueden usar con cadenas de formato, recibirá un error.

lo necesario para pasar el valor Decimal a String.Format eliminando .ToString().

+0

estoy recibiendo lo mismo con: inFile.setINVQueryDept (string.Format ("{0: 0.00} #", frmCentral.startDept), string.Format ("{0: 0.00} #", frmCentral.endDept)); –

1

No tiene sentido utilizar string.format aquí, que se utiliza para agregar valores formateados en cadenas. p.ej.

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

Si lo que desea es el valor de una variable decimal como una cadena con formato a continuación, sólo tiene que pasar el formateador cadena al método toString() por ejemplo,

ADecimal.ToString("C"); 
Cuestiones relacionadas