我想要一个小数的价格和小数字符号本地化。根据文化,小数可能会使用,
或.
。
现在我这样做:
subItem.price.ToString("#.#", CultureInfo.InvariantCulture);
但如果价格是0
(没有小数点),那么结果就是""
,这会让我的系统崩溃。
是否有比"#.#"
更好的模式可以更好地处理0
?
答案 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);
它将您的字符串格式化为货币。