用","错误定位小数。和"。"

时间:2015-01-14 09:02:15

标签: c# cultureinfo

我想要一个小数的价格和小数字符号本地化。根据文化,小数可能会使用,.

现在我这样做:

subItem.price.ToString("#.#", CultureInfo.InvariantCulture);

但如果价格是0(没有小数点),那么结果就是"",这会让我的系统崩溃。

是否有比"#.#"更好的模式可以更好地处理0

3 个答案:

答案 0 :(得分:5)

如何使用"0" custom format specifier呢?

Console.WriteLine((0).ToString("0.0", CultureInfo.InvariantCulture));

打印

0.0

您的代码返回空字符串,因为来自The "#" custom format specifier

  

将“#”符号替换为相应的数字(如果有)   当下;否则,结果字符串中不会出现数字。   请注意,此说明符永远不会显示不是a的零   有效数字,即使零是字符串中的唯一数字。它   只有当它是数字中的有效数字时才会显示零   正在展示

顺便说一句,你的头衔和问题说的不同。您的问题与格式化值时使用的小数点分隔符号无关。这就是为什么在格式化0值时出现空字符串的原因。

答案 1 :(得分:3)

试试0.#。如果值为0.0

,将显示0

答案 2 :(得分:1)

可能尝试使用:

subItem.price.ToString("{0:C}", CultureInfo.InvariantCulture);

它将您的字符串格式化为货币。