В чем разница между ToString("N2")
и ToString("0.00")
?
Разница между ToString ( "N2" ) и ToString ( "0.00" )
Ответ 1
От Строки стандартного числового формата
Число преобразуется в строку форму "-d, ddd, ddd.ddd...", где '-' указывает символ отрицательного числа, если required, 'd' обозначает цифру (0-9), ',' обозначает тысячу разделителей между числовыми группами и '.' указывает символ десятичной точки.
Казалось бы, N
будет включать в себя разделители тысяч, тогда как 0.00
не будет.
Ответ 2
В принципе, ToString("N2")
будет использовать CultureInfo
для форматирования номера. Это означает, что ваш разделитель тысяч может отличаться в зависимости от используемого CultureInfo
. Вы также можете передать желаемый CultureInfo
, если хотите.
Ответ 3
Все о десятичных знаках
N2
будет работать одинаково для 500.00, но когда у вас есть 5000.00, N2
будет отображаться как
5 000,00
вместо
5000,00
Подробнее см. Стандартные строки числового формата.
Ответ 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
Ответ 6
Вот пример, чтобы объяснить
int rupees=567.3423;
string rp=rupees.tostring("N2");
- Ответ rp="567.34";
- N2 дает до двух десятичных записей.