Подтвердить что ты не робот

Разница между ToString ( "N2" ) и ToString ( "0.00" )

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

Ответ 4

Разделитель тысяч - проблема. Использование "n2" даст вам 3,543, где использование "0.00" даст вам 3543. В запятой может быть разбит код с нижестоящим потоком, который, возможно, придется анализировать это значение обратно на десятичную, особенно на стороне клиента js.

Ответ 5

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

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

Ответ 6

Вот пример, чтобы объяснить

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

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