Разница между ToString ("N2") и ToString ("0,00") - PullRequest
38 голосов
/ 22 декабря 2010

В чем разница между ToString("N2") и ToString("0.00")?

Ответы [ 6 ]

34 голосов
/ 22 декабря 2010

С Строки стандартного числового формата

Число преобразуется в строку вида «-d, ddd, ddd.ddd…», где «-» обозначаетсимвол отрицательного числа, если требуется, «d» обозначает цифру (0–9), «,» обозначает разделитель тысяч между группами чисел и «.»указывает символ десятичной точки.

Казалось бы, N будет включать в себя тысячи разделителей, тогда как 0.00 не будет.

См. также Строки настраиваемого числового формата

14 голосов
/ 14 декабря 2011

Как правило, ToString("N2") будет использовать CultureInfo для форматирования числа. Это означает, что ваш разделитель тысяч может отличаться в зависимости от используемого CultureInfo. Вы также можете передать желаемый CultureInfo, если хотите.

11 голосов
/ 07 апреля 2016

Это все о десятичных разрядах

N2 будет работать так же для 500,00, но если у вас есть 5000,00, N2 будет отображаться как

5000,00

вместо

5000,00

См. Стандартные строки числового формата для получения дополнительной информации.

4 голосов
/ 06 ноября 2017

Оба дают вам два десятичных знака, но вы можете легко увидеть разницу, если вы проверите большие цифры:

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

Выполните код онлайн на dotnetfiddle.net

3 голосов
/ 07 марта 2013

Разделитель тысяч является проблемой. Использование «n2» даст вам 3543, тогда как использование «0.00» даст вам 3543. Запятая может разбить нисходящий код, который может потребовать синтаксического анализа этого значения до десятичного числа, особенно на стороне клиента js.

0 голосов
/ 17 марта 2015

Вот пример для объяснения

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

- Ответ rp="567.34"; - N2 дает две десятичные записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...