如何解决数字格式字符串#,#0.00与#,0.00 会发生什么?示例:
我试图弄清楚这些numeric string formatters的基础。所以我想我了解基本知识,但是我不确定一件事
例如,
#,##0.00
事实证明它产生的结果与
相同#,#0.00
或
#,0.00
#,#########0.00
所以我的问题是,为什么人们经常使用#,##
(我在谷歌搜索中看到很多)
也许我错过了一些东西。
您可以here自己尝试一下,然后将以下内容放入该主要功能
double value = 1234.67890;
Console.WriteLine(value.ToString("#,0.00"));
Console.WriteLine(value.ToString("#,#0.00"));
Console.WriteLine(value.ToString("#,##0.00"));
Console.WriteLine(value.ToString("#,########0.00"));
解决方法
可能是因为Microsoft在其文档(包括您链接的页面)中使用了相同的格式说明符。弄清楚为什么并不难。 #,##0.00
更清楚地说明了程序员的意图:用逗号分隔的三位数组。
会发生什么?
以下功能称为:
public string ToString(string? format)
{
return Number.FormatDouble(m_value,format,NumberFormatInfo.CurrentInfo);
}
重要的是要意识到格式用于格式化字符串,但是您的格式碰巧会得到相同的结果。
示例:
value.ToString("#,#") // 1,235
value.ToString("0,0") // 1,235
value.ToString("#") // 1235
value.ToString("0") // 1235
value.ToString("#.#")) // 1234.7
value.ToString("#.##") // 1234.68
value.ToString("#.###") // 1234.679
value.ToString("#.#####") // 1234.6789
value.ToString("#.######") // = value.ToString("#.#######") = 1234.6789
我们看到了
- 您是否输入
#
,0
或其他任何数字都没关系 - 一次出现是指:任意大数
double value = 123467890;
Console.WriteLine(value.ToString("#")); // Prints the full number
-
,
和.
被双重对待的区别 - 在点或逗号后,将仅显示所提供的字符数(或更少:如
#.######
一样)。
在这一点上很明显,这与程序员的意图有关。如果要将数字显示为1,234.68
或1234.67890
,则应将其格式设置为
"#,###.##" or "#,#.##" // 1,234.68
"####.#####" or "#.#####" // 1234.67890
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。