如何将0小数解析为字符串

本文关键字:字符串 小数 | 更新日期: 2023-09-27 17:57:45

为什么在解析十进制(0)ToString时,使用以下方法时字符串显示为空:

String somthing = someDecimal.ToString("#")

当我使用时:

String somthing = somDecimal.ToString("0.##")

字符串显示为0

当我以两种方式查看调试模式中的值时,它表明它们中有一个"0"。

如何将0小数解析为字符串

来自"#"自定义说明符

请注意,此说明符从不显示不是有效数字,即使零是字符串中唯一的数字。它只有当它是数字中的有效数字时才会显示零正在显示。

如果要在小数点后显示数字,则需要使用0.00而不是0.##

因为磅"#"表示如果有数字,则转换为符号。0是一个"空"数字,因此它转换为"。

事实上,在第二种情况下,您得到了0,因为您暗示在句点之前至少显示一个数字。

这一切都是按照C#语言的设计惯例。

MSDN:"#"自定义说明符

"#"自定义格式说明符用作数字占位符符号。如果正在格式化的值在以下位置有一个数字"#"符号出现在格式字符串中,该数字将复制到结果字符串。否则,在结果字符串请注意,此说明符从不显示不是有效数字,即使零是一串只有当它是正在显示的数字

因此,如果小数是1而不是0,则即使使用ToString("#"),也会对其进行显示。

如果你想在小数点后有固定数量的小数,你需要使用

 String somthing = somDecimal.ToString("0.00")

在您的示例中,您使用#说明符,意思是"如果有一个有意义的数字,就在这里放一个数字"
如果someDecimal0.01 ,它会起作用

 decimal somDecimal = 0.01m
 String somthing = somDecimal.ToString("0.##");

但如果

 decimal somDecimal = 0.01m
 String somthing = somDecimal.ToString("0.#");