如何解析0小数到字符串?

时间:2014-04-10 07:39:46

标签: c# string decimal

为什么我在解析小数时(0)ToString我的字符串在使用方法时显示为空:

String somthing = someDecimal.ToString("#")

当我使用时:

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

字符串显示为0

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

4 个答案:

答案 0 :(得分:4)

来自The "#" Custom Specifier

  

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

如果您想在小数点后显示数字,则需要使用0.00代替0.##

答案 1 :(得分:2)

如果您想要小数点后面的固定小数位数,则需要使用

 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.#");

答案 2 :(得分:2)

因为pound"#"意味着如果有数字,则转换为符号。 0是一个空的"数字,因此它转换为""。

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

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

答案 3 :(得分:2)

MSDN: the "#" Custom Specifier

  

"#"自定义格式说明符用作数字占位符符号。   如果正在格式化的值在其中的位置有一个数字   "#"符号出现在格式字符串中,该数字被复制到   结果字符串。否则,没有任何东西存储在该位置   结果字符串。 请注意,此说明符从不显示零   即使零是唯一的数字,也不是一个重要的数字   串。只有当它是一个重要的数字时它才会显示零   正在显示的号码。

因此,如果十进制数为1而不是0,即使使用ToString("#"),它也会被显示。