.net显示没有货币符号的本地化货币格式

时间:2017-05-03 16:32:29

标签: .net model-view-controller views string-formatting currency

我有一个需要显示货币字段的本地化网站。

货币将保持不变,并且每种文化不会改变

我试图像这样格式化货币:

@String.Format(CultureInfo.CurrentCulture, "{0:C}", item.GrossPayment)

但这不起作用,因为它显示该文化的原生货币符号。

我想显示12欧元,但上面显示¥12

所以,格式是我想要的,但没有我可以硬编码的货币符号

所以接下来我尝试了这个:

€@String.Format(CultureInfo.CurrentCulture, "{0:N}", item.GrossPayment)

在ja-JP

  

12.00€

显示这样就克服了我的货币符号问题,但现在格式错误,因为在ja-JP文化中应该没有小数点或尾随零,它应该显示为

  

€12

如何在视图中指定我自己的货币符号时如何保留格式?

1 个答案:

答案 0 :(得分:0)

您可以更改文化中的货币符号。创建文化的副本,然后随意更改:

var culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.NumberFormat.CurrencySymbol = "€";
@String.Format(culture, "{0:C}", 12);

也许你可以在一些静态变量中保存文化的副本,所以不必在每个请求上克隆...