.net显示没有货币符号的本地化货币格式
问题描述:
我有一个需要显示货币字段的本地化网站。.net显示没有货币符号的本地化货币格式
货币将保持不变,并
我试图格式化这样的货币不会每文化变革:
@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);
也许你可以保留一些静态变量文化的副本,所以不会有克隆在每次请求......
是的,那有用,谢谢。看起来像一个全能的黑客,但。不相信没有一些内置的机制可以实现我认为是相当普通的要求 –