Удалите $из .ToString( "{0: C}" ) отформатированный номер - программирование

Удалите $из .ToString( "{0: C}" ) отформатированный номер

В основном я форматирование чисел, подобных этому

@String.Format("{0:C}", Model.Price)

В результате получается $2,320,000.00

Мой желаемый результат, однако, 2,320,000.00 без $, соответственно. Как я могу достичь этого, сохраняя при этом возможность использования локализации локализации .nets?

Edit

и что, если я хочу, чтобы это изменило мой класс, чтобы когда-либо человек пытался получить Price, он получает такую ​​форматированную цену. Вот мой класс

public class Listing : DomainObject
{   
    public decimal Price { get; set; }
    public decimal Commission { get; set; }
}
4b9b3361

Ответ 1

Используйте N вместо C как ваш спецификатор :

@String.Format("{0:N}", Model.Price)

"C" или "c" Результат валюты: значение валюты.

123.456 ( "C", en-US) → $123.46

"N" или "n" Число Результат: интегральные и десятичные числа, разделители групп и десятичные числа

1234,567 ( "N", en-US) → 1,234,57

т.е. вы получали символ валюты, потому что вы просили его.

Ответ 3

Вы хотите сделать свойство Price строкой и иметь поле поддержки десятичного числа, а затем в getter вашего свойства Price введите свой строковый формат.

private decimal price;

public String Price 
{
   get { return String.Format("{0:N}", price); }
}

Затем вы можете использовать @Model.Price для отображения.

Ответ 4

Скорее используйте {0:F2}, поскольку это не будет включать запятую ',' как в {0: C}.

Console.Write("{0:F2}", 2.5); //2.50
Console.Write("{0:F0}", 25);  //25