ToString("N2")
和 ToString("0.00")
有什么区别?
ToString("N2")
和 ToString("0.00")
有什么区别?
该数字被转换为字符串形式“-d,ddd,ddd.ddd…”,其中“-”表示必要时负数符号,“d”表示数字(0-9),逗号“,”表示数字组之间的千位分隔符,“.”表示小数点符号。
似乎N
将包含千位分隔符,而0.00
则不会。
另请参见自定义数值格式字符串
基本上,ToString("N2")
将使用 CultureInfo
格式化数字。这意味着您的千位分隔符可能会因使用的 CultureInfo
而不同。如果需要,您还可以传递所需的 CultureInfo
。
两者都给出两位小数,但如果您检查更大的数字,您可以轻松看到它们之间的差异:
var d = 1234567.89;
for (var i = 0; i < 10; ++i) {
Console.WriteLine(d.ToString("N2") + "\t" + d.ToString("0.00"));
d /= 10.0;
}
输出
1.234.567,89 1234567,89
123.456,79 123456,79
12.345,68 12345,68
1.234,57 1234,57
123,46 123,46
12,35 12,35
1,23 1,23
0,12 0,12
0,01 0,01
0,00 0,00
这里有一个例子来解释
int rupees=567.3423;
string rp=rupees.tostring("N2");
--答案是rp="567.34";
-- N2可记录两个小数位。
ToString("N2")
和ToString("0.00")
之间的区别,但这并没有在这个答案中涉及到。除此之外,这个答案是完全错误的,因为正如其他答案所解释的那样,N2
会考虑到CultureInfo
并添加千位分隔符。 - Wouter Vanherck