32

基本上我正在格式化这样的数字

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

结果是 $2,320,000.00

然而,我想要的结果2,320,000.00只是没有$,分别。我怎样才能做到这一点,同时仍然利用 .net 本地化处理?

编辑

如果我想改变我的班级,这样当一个人试图获得Price时,他会得到这种格式化的价格。这是我的课

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

4 回答 4

66

使用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

即你得到一个货币符号是因为你一个。

于 2013-07-09T06:34:13.957 回答
6

而是使用{0:F2},因为这不会包括逗号',',就像在 {0:C} 中一样。

Console.Write("{0:F2}", 2.5); //2.50
Console.Write("{0:F0}", 25);  //25
于 2015-05-26T06:36:28.747 回答
4

您需要将 Price 属性设为字符串,并有一个小数的支持字段,然后在 Price 属性的 getter 中执行您的字符串格式。

private decimal price;

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

然后你可以 @Model.Price用于显示。

于 2013-07-09T06:29:42.393 回答
2

设置CultureInfo.CurrentCulture.NumberFormat.CurrencySymbolstring.Empty

于 2013-07-09T06:23:11.180 回答