лучший способ: $ ('# myTextBox'). val ('новое значение'). trim ();
int number = 1234567890;
Convert.ToDecimal(number).ToString("#,##0.00");
Вы получите результат 1,234,567,890.00
.
Попробуйте с помощью
ToString("#,##0.###")
Производит:
1234.55678 => 1,234.556
1234 => 1,234
blockquote>
Ваш вопрос не очень ясен, но это должно достигнуть того, что вы пытаетесь сделать:
decimal numericValue = 3494309432324.00m;
string formatted = numericValue.ToString("#,##0.00");
Тогда formatted
будет содержать: 3,494,309,432,324.00
CultureInfo us = new CultureInfo("en-US");
TotalAmount.ToString("N", us)
Возможно, вам просто нужна строка стандартного формата "N"
, как в
number.ToString("N")
. Она будет использовать тысячи разделителей и фиксированное число дробных десятичных знаков. Символ для разделителей тысяч и символ десятичной точки зависят от поставщика формата (обычно CultureInfo
), который вы используете, а также количества десятичных знаков (которые, как вам нужно, обычно равны 2).
Если поставщик формата указывает другое число десятичных знаков, и если вы не хотите менять поставщика формата, вы можете указать число десятичных знаков после N
, как в .ToString("N2")
.
Изменить: размеры групп между запятыми регулируются массивом
CultureInfo.CurrentCulture.NumberFormat.NumberGroupSizes
, если вы не указали поставщика специального формата.
Для просмотра Razor:
$@string.Format("{0:#,0.00}",item.TotalAmount)
Все, что вам нужно, это «#, 0.00», c # делает остальные.
Num.ToString ("#, 0.00" ")
Попробуйте использовать
ToString("#,##0.00")
из MSDN
* Спецификатор специального формата «0» служит символом нулевого заполнителя. Если форматируемое значение имеет цифру в позиции, где в строке формата появляется нуль, эта цифра копируется в результирующую строку; в противном случае в строке результата появляется нуль. Позиция самого левого нуля перед десятичной точкой и самый правый нуль после десятичной точки определяет диапазон цифр, которые всегда присутствуют в результирующей строке.
Спецификатор «00» вызывает округление значения до ближайшей цифры, предшествующей десятичной, где всегда используется округление от нуля. Например, форматирование 34.5 с «00» приведет к значению 35. *
У меня была та же проблема. Я хотел форматировать числа, такие как «Общий» формат в электронных таблицах, то есть показывать десятичные знаки, если они значительны, но отрубить их, если нет. Другими словами:
1234.56 => 1,234.56
1234 => 1,234
blockquote>Он должен поддерживать максимальное количество мест после десятичной, но не ставьте конечные нули или точки, если это не требуется, и, конечно же, это должно быть дружественным к культуре. Я никогда не понимал, как это сделать, используя только 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