【发布时间】:2016-10-03 21:51:08
【问题描述】:
在一些遗留的 .NET 代码中,我遇到了许多自定义数字格式字符串,如下所示:
###,##0.00
这和有什么区别:
#,#0.00
?
编辑:
以下是我尝试过的一些示例输入,所有这些输入对于两个掩码都产生相同的结果:1000000、1000、100、10、1.456、-30000、0.002。
编辑:
@Sahuagin 建议这些掩码可能是相同的,因为文化如何设置为三位数。但是,即使使用它,我也无法证明有什么不同:
var culture = new CultureInfo("en-US");
culture.NumberFormat.NumberGroupSizes = new[] { 1, 2, 3, 4 };
culture.NumberFormat.NumberGroupSizes.Dump();
1234567890.ToString("#,#0.00", culture).Dump(); // 1234,567,89,0.00
1234567890.ToString("###,#0.00", culture).Dump(); // 1234,567,89,0.00
更一般地说,我知道 # 是一个“可选”数字,不会创建前导零或尾随零。但是,似乎小数点前只有一个 # 就足以获取所有前导数字。 MSDN docs 似乎区分了# 和##,但这种解释对我来说没有多大意义,而且我还没有找到一个可以产生影响的例子。
【问题讨论】:
-
您在尝试这些样本时看到了什么?
-
@L.B 你到底在说什么样本?
标签: c# .net number-formatting