从.ToString(“{0:C}”)格式化的数字中删除$

时间:2013-07-09 06:21:39

标签: c# string-formatting

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

@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; }
}

4 个答案:

答案 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)

答案 3 :(得分:2)

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

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