如何将0小数解析为字符串
本文关键字:字符串 小数 | 更新日期: 2023-09-27 17:57:45
为什么在解析十进制(0)ToString时,使用以下方法时字符串显示为空:
String somthing = someDecimal.ToString("#")
当我使用时:
String somthing = somDecimal.ToString("0.##")
字符串显示为0
?
当我以两种方式查看调试模式中的值时,它表明它们中有一个"0"。
来自"#"自定义说明符
请注意,此说明符从不显示不是有效数字,即使零是字符串中唯一的数字。它只有当它是数字中的有效数字时才会显示零正在显示。
如果要在小数点后显示数字,则需要使用0.00
而不是0.##
。
因为磅"#"表示如果有数字,则转换为符号。0
是一个"空"数字,因此它转换为"。
事实上,在第二种情况下,您得到了0
,因为您暗示在句点之前至少显示一个数字。
这一切都是按照C#语言的设计惯例。
MSDN:"#"自定义说明符
"#"自定义格式说明符用作数字占位符符号。如果正在格式化的值在以下位置有一个数字"#"符号出现在格式字符串中,该数字将复制到结果字符串。否则,在结果字符串请注意,此说明符从不显示不是有效数字,即使零是一串只有当它是正在显示的数字
因此,如果小数是1而不是0,则即使使用ToString("#")
,也会对其进行显示。
如果你想在小数点后有固定数量的小数,你需要使用
String somthing = somDecimal.ToString("0.00")
在您的示例中,您使用#
说明符,意思是"如果有一个有意义的数字,就在这里放一个数字"
如果someDecimal
是0.01
,它会起作用
decimal somDecimal = 0.01m
String somthing = somDecimal.ToString("0.##");
但如果
decimal somDecimal = 0.01m
String somthing = somDecimal.ToString("0.#");