如何将货币符号强制置于数字的右侧?

时间:2018-08-02 07:03:01

标签: c# asp.net

我的小数属性上有一个DisplayFormat属性,以将其显示为货币:

[DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = true)]
public decimal Price { get; set; }

这是我在视图中打印的方式:

@Html.DisplayFor(x => x.Price)

如果Price的值为3000,则显示为:

kr. 3.000

但是我希望它以金额右侧的货币显示,例如:

3.000 kr.

我该怎么做?

2 个答案:

答案 0 :(得分:0)

使用的货币格式由相关的CultureInfo实例定义。

某些方法的重载采用IFormatProvider(由CultureInfo实现),否则为CultureInfo中的默认Thread.CurrentCulture。使用剃刀助手时,后一种情况适用。

具体来说,CultureInfo.NumberFormat.CurrencyPositivePattern.CurrencyNegativePattern确定货币符号的位置。

您可以使用CultureAndRegionInfoBuilder创建具有不同设置的自定义区域性。

不过,您最好添加自己的特定于货币的助手,该助手使用自定义NumberFormatInfo(可能通过Razor显示模板)并使用UIHintAttribute来指定应使用该显示模板的属性。

答案 1 :(得分:0)

更新

此属性C(标准格式定义正货币值)具有下表中的值之一。符号“ $”是CurrencySymbol,n是数字。

  • 0产生$ n
  • 1个结果为n $
  • 2个结果为$ n
  • 3个结果,共n个

以便克隆原始文化:

CultureInfo swedish = new CultureInfo("sv-SE");
swedish = (CultureInfo)swedish.Clone();
swedish.NumberFormat.CurrencyPositivePattern = 3;
swedish.NumberFormat.CurrencyNegativePattern = 3;

查看Show Currency Symbol after values 还有那个link