Как отформатировать число с запятыми?

int a = 10000000;
a.ToString();

Как сделать вывод?

10,000,000


person Community    schedule 31.03.2009    source источник
comment
Возможный дубликат .NET String.Format () для добавления запятых в разряде тысяч для числа   -  person Michael    schedule 16.02.2017


Ответы (5)


Попробуйте N0 без десятичной части:

string formatted = a.ToString("N0"); // 10,000,000
person Christian C. Salvadó    schedule 31.03.2009
comment
Есть ли способ сделать это с помощью a.ToString(#);? В моем случае мне нужно, чтобы значение было пустым на нуле, но мне также нужны запятые - или я должен просто сделать это как a.ToString(#,###,###,###,###,## #,###)? - person James; 18.11.2014
comment
Вероятно, вам нужно сделать блок if{}else{}, чтобы справиться с нулем. - person Steve Woods; 05.05.2015
comment
@cms, как добиться этого 10,24,78,000 - person Meer; 16.02.2016

Вы также можете сделать String.Format:

int x = 100000;
string y = string.Empty;
y = string.Format("{0:#,##0.##}", x); 
//Will output: 100,000

Если у вас есть десятичное число, тот же код выведет 2 десятичных знака:

double x = 100000.2333;
string y = string.Empty;
y = string.Format("{0:#,##0.##}", x); 
//Will output: 100,000.23

Чтобы сделать запятую вместо десятичной, используйте это:

double x = 100000.2333;
string y = string.Empty;
y = string.Format(System.Globalization.CultureInfo.GetCultureInfo("de-DE"), "{0:#,##0.##}", x);
person Willy David Jr    schedule 27.11.2016
comment
как насчет того, если десятичный разделитель - запятые? - person Emil; 13.10.2018


Более простой вариант String.Format:

int a = 10000000;
String.Format("{0:n0}", a); //10,000,000
person pistol-pete    schedule 08.06.2017

a.tostring("00,000,000")

person Mike    schedule 31.03.2009
comment
Я думаю, что вы поняли // буквально, я думаю, что ОП имел в виду написать его как прокомментированный код. - person bendewey; 31.03.2009
comment
вы можете попробовать a = 10 000 000;) - person johnc; 31.03.2009