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

Добавьте запятые, используя String.Format для числа и

Использование String.Format, как я могу обеспечить, чтобы все числа имели запятую после каждых трех цифр например, 23000 = "23 000" и что 0 возвращает "0".

String.Format( "{0: n}", 0);//дает 0.00, который я не хочу. Я не хочу никаких десятичных знаков, все числа будут целыми числами.

4b9b3361

Ответ 1

Вы можете сделать это, и я нахожу немного более чистым, чтобы читать намерения:

String.Format("{0:#,###0}", 0);

Пример:

string.Format("{0:#,###0}", 123456789); // 123,456,789
string.Format("{0:#,###0}", 0); // 0

Ответ 2

Если ваша текущая настройка культуры использует запятые в качестве разделителя тысяч, вы можете просто форматировать ее как число с нулевыми десятичными знаками:

String.Format("{0:N0}", 0)

Или:

0.ToString("N0")

Ответ 3

from msdn

double value = 1234567890;
Console.WriteLine(value.ToString("#,#", CultureInfo.InvariantCulture));

Отображает 1,234,567,890

Ответ 4

Вы также можете немного поиграть с объектом CultureInfo, если ни одно из других решений не будет работать для вас:

        var x = CultureInfo.CurrentCulture;
        x.NumberFormat.NumberDecimalSeparator = ",";
        x.NumberFormat.NumberDecimalDigits = 0;
        x.NumberFormat.NumberGroupSizes = new int[] {3};

Ответ 5

Вы можете поместить число после N, чтобы указать число десятичных цифр:

String.Format("{0:n0}", 0) // gives 0

Ответ 6

Я добавил еще один ответ, а затем обнаружил, что нулевые значения являются пустой строкой.

        System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("de-DE");
        System.Threading.Thread.CurrentThread.CurrentCulture = ci;

        double x = 23232323.21;
        string y = x.ToString("#,0", System.Globalization.CultureInfo.CurrentCulture);

Строка возвращается в текущей культуре, которая является немецкой, поэтому y = 23.232.323

y = 0 при x = 0.

Ответ 7

вы просто выразились так:

Console.WriteLine(**$**"Your current amount of money is: **{yourVar:c}**");