От The "#"
Custom Specifier
Обратите внимание, что это спецификатор никогда отображает ноль, что не значимая цифра, даже если нуль только цифра в строке. Он будет показывать ноль, только если это значащая цифра в количестве, которое отображается .
Если вы хотите отобразить его как 00,000,000,000
, вы можете использовать The "0"
Custom Specifier. Но помните, что этот спецификатор ставит ноль, если он не соответствует никакому числовому значению в вашем двойном.
Это значит, что (15).ToString("00,000,000,000")
будет генерировать 00,000,000,015
.
Если вы хотите отобразить 0
, а также другие, чем другие ваши ценности, просто измените свой последний формат цифр от #
до 0
как ##,###,###,##0
.
Но лучший способ может использовать The numeric "N"
format specifier по-моему. Эти спецификаторы генерируют тысячи разделителей групп и размер, десятичный разделитель и его размер (вы можете опустить эту часть с N0
) возможным отрицательным знаком и его шаблоном.
double d = 0;
var text = d.ToString("N0");
Также я хочу упомянуть о ,
в вашем строковом формате. Вы хотите, чтобы группа, как тысячи сепаратора, (и так как вы не используете любойIFormatProvider
в коде), если ваши CurrentCulture
«ы NumberGroupSeparator
отличается ,
характера, будет отображаться что характер, не ,
.
Например, Я в Турции, и моя нынешняя культура tr-TR
, и эта культура имеет .
как NumberGroupSeparator
. Вот почему ваш код будет генерировать результат в моей машине как ##.###.###.###
формат не ##,###,###,###
.
попробуйте с помощью 'var text = d.ToString (" ##, ###, ###, ## 0 ");' если вы не хотите пустых строк. –
уже есть формат для чего вы хотите. 'd.ToString (" N0 ")' – Franck