строковый формат денег, [дубликат]

лучший способ: $ ('# myTextBox'). val ('новое значение'). trim ();

23
задан Krishan 17 April 2013 в 05:57
поделиться

10 ответов

int number = 1234567890;
Convert.ToDecimal(number).ToString("#,##0.00");

Вы получите результат 1,234,567,890.00.

49
ответ дан michaelb958 17 August 2018 в 12:04
поделиться
  • 1
    в модели, это похоже на public decimal. Сумма {get; set;}, когда я использую для ввода значения базы данных. 29.1234. Я получаю результат в представлении 29.12, даже я меняю базу данных десятичной (18,4), которая была (18,2), но все же я получаю значение как 29.1200, но я хочу точное значение без каких-либо изменений, это возможно – SAR 12 December 2016 в 12:54
  • 2
    что, черт возьми, этот ответ принят? это дает мне 1 234 567 890,00 – Toolkit 26 August 2017 в 17:48

Попробуйте с помощью

ToString("#,##0.###")

Производит:

1234.55678 => 1,234.556

1234 => 1,234

1
ответ дан Abolfazl Rastgou 17 August 2018 в 12:04
поделиться

Ваш вопрос не очень ясен, но это должно достигнуть того, что вы пытаетесь сделать:

decimal numericValue = 3494309432324.00m;
string formatted = numericValue.ToString("#,##0.00");

Тогда formatted будет содержать: 3,494,309,432,324.00

3
ответ дан Belogix 17 August 2018 в 12:04
поделиться
CultureInfo us = new CultureInfo("en-US");
TotalAmount.ToString("N", us)
4
ответ дан DarkoM 17 August 2018 в 12:04
поделиться
  • 1
    CultureInfo us = new CultureInfo («en-US») сделал это для меня – Toolkit 26 August 2017 в 17:52

Возможно, вам просто нужна строка стандартного формата "N", как в

number.ToString("N")

. Она будет использовать тысячи разделителей и фиксированное число дробных десятичных знаков. Символ для разделителей тысяч и символ десятичной точки зависят от поставщика формата (обычно CultureInfo), который вы используете, а также количества десятичных знаков (которые, как вам нужно, обычно равны 2).

Если поставщик формата указывает другое число десятичных знаков, и если вы не хотите менять поставщика формата, вы можете указать число десятичных знаков после N, как в .ToString("N2").

Изменить: размеры групп между запятыми регулируются массивом

CultureInfo.CurrentCulture.NumberFormat.NumberGroupSizes

, если вы не указали поставщика специального формата.

17
ответ дан Jeppe Stig Nielsen 17 August 2018 в 12:04
поделиться

Для просмотра Razor:

$@string.Format("{0:#,0.00}",item.TotalAmount)
5
ответ дан JoshYates1980 17 August 2018 в 12:04
поделиться

Все, что вам нужно, это «#, 0.00», c # делает остальные.

Num.ToString ("#, 0.00" ")

  • , 0 "форматирует тысячи разделителей
  • " 0.00 "заставляет две десятичные точки
2
ответ дан Matt Welson 17 August 2018 в 12:04
поделиться

Попробуйте использовать

ToString("#,##0.00")

из MSDN

* Спецификатор специального формата «0» служит символом нулевого заполнителя. Если форматируемое значение имеет цифру в позиции, где в строке формата появляется нуль, эта цифра копируется в результирующую строку; в противном случае в строке результата появляется нуль. Позиция самого левого нуля перед десятичной точкой и самый правый нуль после десятичной точки определяет диапазон цифр, которые всегда присутствуют в результирующей строке.

Спецификатор «00» вызывает округление значения до ближайшей цифры, предшествующей десятичной, где всегда используется округление от нуля. Например, форматирование 34.5 с «00» приведет к значению 35. *

7
ответ дан Patrick D'Souza 17 August 2018 в 12:04
поделиться
0
ответ дан Sagar Mahajan 17 August 2018 в 12:04
поделиться

У меня была та же проблема. Я хотел форматировать числа, такие как «Общий» формат в электронных таблицах, то есть показывать десятичные знаки, если они значительны, но отрубить их, если нет. Другими словами:

1234.56 => 1,234.56

1234 => 1,234

Он должен поддерживать максимальное количество мест после десятичной, но не ставьте конечные нули или точки, если это не требуется, и, конечно же, это должно быть дружественным к культуре. Я никогда не понимал, как это сделать, используя только String.Format , но сочетание String.Format и Regex.Replace с некоторой помощью в области культуры от NumberFormatInfo.CurrentInfo выполнил задание (LinqPad C # Program).

string FormatNumber<T>(T number, int maxDecimals = 4) {
    return Regex.Replace(String.Format("{0:n" + maxDecimals + "}", number),
                         @"[" + System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator + "]?0+$", "");
}   

void Main(){
    foreach (var test in new[] { 123, 1234, 1234.56, 123456.789, 1234.56789123 } )
        Console.WriteLine(test + " = " + FormatNumber(test));
}

Производит:

123 = 123
1234 = 1,234
1234.56 = 1,234.56
123456.789 = 123,456.789
1234.56789123 = 1,234.5679
4
ответ дан Wade Hatler 17 August 2018 в 12:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: