ToString(“N2”)和ToString(“0.00”)之间的区别

时间:2010-12-22 05:04:59

标签: c# formatting

ToString("N2")ToString("0.00")之间的区别是什么?

6 个答案:

答案 0 :(得分:34)

来自Standard Numeric Format Strings

  

将数字转换为字符串   形式“-d,ddd,ddd.ddd ...”,其中' - '   表示负数字符号if   必需,'d'表示一个数字(0-9),   ','表示千位分隔符   数组之间和'。'   表示小数点符号。

似乎N将包含数千个分隔符,而0.00则不会。

另见Custom Numeric Format Strings

答案 1 :(得分:14)

基本上,ToString("N2")会使用CultureInfo格式化数字。这意味着您的千位分隔符可能会有所不同,具体取决于使用的CultureInfo。如果需要,您也可以传递所需的CultureInfo

答案 2 :(得分:11)

所有关于小数位

N2将以相同的方式运行500.00,但是当您有5000.00时,N2将显示为

5,000.00

而不是

5000.00

有关详细信息,请参阅Standard Numeric Format Strings

答案 3 :(得分:4)

两者都给你两个小数位,但如果检查更大的数字,你可以很容易地看到差异:

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

Execute code online at dotnetfiddle.net

答案 4 :(得分:3)

千分隔符是一个问题。使用“n2”将给你3,543,其中使用“0.00”将给你3543.逗号可以分解下游代码,可能必须将该值解析回小数,尤其是客户端js。

答案 5 :(得分:-6)

以下是解释

的示例
int rupees=567.3423;
string rp=rupees.tostring("N2");

- 答案是rp="567.34";     - N2最多提供两个十进制记录。