[英].NET String formatting -What does the # mean to the left of the decimal point?
我需要将数字字符串格式化为小数点两边最多2个位置,即使这意味着截断或截断前导数字(这是一个很长的故事,不要问)。 在MSDN上,它意味着可以使用井号(#)完成:
“”#“自定义格式说明符用作数字占位符符号。如果格式化的值在格式字符串中出现井号的位置有一个数字,则该数字将复制到结果字符串。否则,没有任何东西存储在结果字符串中的那个位置。“
但在实践中,似乎只能在小数点右侧工作。 如果我这样做:
String s = " Test - " + String.Format("format0 = {0:0.##}, format1 = {1:#.##}, format2 = {2:##.###}",321.2345, 321.2345, 321.2345);
我得到s的这个输出:
“测试 - 格式0 = 321.23,格式1 = 321.23,格式2 = 321.235”
...注意“0。##”和“#。##”产生相同的输出。 那么当它位于小数点左侧时,“#” 究竟是什么意思呢?
为了解释您引用的文档 , #
使该位置的数字可选。 如果该号码在该位置有一个重要数字,它将被打印; 否则它不会。
看看这个例子:
String.Format("{0:0.##}, {0:#.##}", 0.5)
这将输出
0.5, .5
或许是一个更明确的例子:
String.Format("{0:000.000}, {0:###.###}", 0.5)
这将输出
000.500, .5
0.##
和#.##
不产生相同的输出。
0m.ToString("0.##") // returns "0"
0m.ToString("#.##") // returns ""
0m.ToString("#.#0") // returns ".00"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.