我想要一个小数的价格和小数字符号本地化.根据文化,小数可能使用,
或.
.
现在我这样做:
subItem.price.ToString("#.#", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
但如果价格是0
(没有小数点),结果就是结果""
,这会让我的系统崩溃.
是否有比更好的方式"#.#"
处理更好的模式0
?
如何使用"0"
自定义格式说明符呢?
Console.WriteLine((0).ToString("0.0", CultureInfo.InvariantCulture));
Run Code Online (Sandbox Code Playgroud)
版画
0.0
Run Code Online (Sandbox Code Playgroud)
你的代码,因为从返回空字符串的"#"
自定义格式说明
将"#"符号替换为相应的数字(如果存在); 否则,结果字符串中不会出现数字. 请注意,即使零是字符串中的唯一数字,此说明符也不会显示不是有效数字的零.仅当它是显示的数字中的有效数字时,它才会显示零.
顺便说一句,你的标题和问题说的不同.您的问题与格式化值时使用的小数点分隔符号无关.这就是为什么在格式化0
值时得到空字符串的原因.