基本的に私はこのような数字をフォーマットしています
@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; }
}
形式指定子 として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
つまりを求めていたため通貨記号を得ていました。
Priceプロパティを文字列にし、10進数のバッキングフィールドを作成してから、Priceプロパティのgetterで文字列形式を作成します。
private decimal price;
public String Price
{
get { return String.Format("{0:N}", price); }
}
その後、@Model.Price
を使用して表示できます。
むしろ{0:F2}
{0:C}のように、これにはコンマが含まれないため。
Console.Write("{0:F2}", 2.5); //2.50
Console.Write("{0:F0}", 25); //25
設定 CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol
to string.Empty
。