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

.net display localised currency format without currency symbol

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

货币将保持不变,不会因文化而异

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

@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

有什么想法可以在视图中指定我自己的货币符号时保留格式吗?

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

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

也许您可以在某个静态变量中保存文化副本,这样就不必在每次请求时都进行克隆...