为什么0.ToString("#.##")
返回一个空字符串?不应该是0.00
或至少0?
Ric*_*lly 181
#
字符串格式表示该值是可选的.如果您希望获得输出0.00
,则需要以下内容:
0.ToString("0.00");
Run Code Online (Sandbox Code Playgroud)
And*_*ber 132
因为在格式字符串中,#
它用于表示可选的字符占位符; 仅在需要时才使用它来表示数字.
如果你这样做:0.ToString("0.##");
你得到:0
有趣的是,如果你这样做:0.ToString("#.0#");
你得到:.0
如果你想要所有三个数字:0.ToString("0.00");
产生:0.00
从评论到这个答案,你的论点似乎是,
它应该显示'0',因为如果数值为0,为什么有人想要看到一个空字符串?
响应很简单:您可以选择希望如何显示.这就是自定义格式字符串的用途.您只需根据需要选择不正确的格式字符串.
Mig*_*ero 20
根据有关数字占位符的文档.
如果格式化的值在格式字符串中出现"#"的位置有一个数字,则该数字将复制到结果字符串.否则,结果字符串中的任何位置都不存储任何内容.如果它不是有效数字,则该说明符永远不会显示'0'字符,即使'0'是字符串中的唯一数字.如果它是显示的数字中的有效数字,它将显示'0'字符."##"格式字符串使该值四舍五入到小数点前面的最近数字,其中始终使用从零开始的舍入.例如,使用"##"格式化34.5将导致值35.
如果要显示零,请使用Zero PlaceHolder
f格式化的值在格式字符串中出现"0"的位置有一个数字,然后该数字被复制到结果字符串.小数点前面最左边的"0"和小数点后面最右边的"0"的位置决定了结果字符串中始终存在的数字范围.
"00"说明符使该值四舍五入到小数点前面的最近数字,其中始终使用从零开始的舍入.例如,使用"00"格式化34.5将导致值35.
归档时间: |
|
查看次数: |
81061 次 |
最近记录: |