基本上我正在格式化这样的数字
@String.Format("{0:C}", Model.Price)
结果是$ 2,320,000.00
然而,我想要的结果是2,320,000.00
,而不是$
。我怎样才能实现这一点,同时仍然利用.nets本地化处理?
修改
如果我想改变我的课程,那么当一个人试图获得Price
时,他会得到这种格式化价格。这是我的班级
public class Listing : DomainObject
{
public decimal Price { get; set; }
public decimal Commission { get; set; }
}
答案 0 :(得分:46)
使用N
代替C
作为format specifier:
@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
即。你得到一个货币符号,因为你要求一个。
答案 1 :(得分:3)
你想让Price属性成为一个字符串,并且有一个十进制的后备字段,然后在你的Price属性的getter中做你的字符串格式。
private decimal price;
public String Price
{
get { return String.Format("{0:N}", price); }
}
然后你可以使用
@Model.Price
用于显示。
答案 2 :(得分:2)
将CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol
设为string.Empty
。
答案 3 :(得分:2)
而是使用{0:F2}
,因为这不包括逗号','就像在{0:C}中一样。
Console.Write("{0:F2}", 2.5); //2.50
Console.Write("{0:F0}", 25); //25