格式化是指定的,但参数不是IFormattable

时间:2010-05-17 14:09:11

标签: c#

string listOfItemPrices = items.ToSemiColonList(item => string.Format("{0:C}", item.Price.ToString()));

我只是想把这里的价格格式化为2位小数。好的,所以string.Format没有实现IFormattable?好的不知道如何解决这个问题,以便我可以在这里格式化小数(价格)。

2 个答案:

答案 0 :(得分:16)

item.Price.ToString()传递给String.Format,您传递的是字符串,而不是小数。
由于字符串不能与格式字符串一起使用,因此出现错误。

您需要删除Decimal,将 String.Format 值传递给.ToString()

答案 1 :(得分:1)

这里使用string.format没有意义,它用于将格式化的值添加到字符串中。 e.g。

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

如果您只想将十进制变量的值作为格式化字符串,那么只需将字符串格式化程序传递给ToString()方法即可。

ADecimal.ToString("C");