【问题标题】:.net display localised currency format without currency symbol.net 显示没有货币符号的本地化货币格式
【发布时间】:2017-05-03 16:32:29
【问题描述】:

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

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

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

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

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

我想显示 €12,但上面显示 ¥12

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

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

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

在日本日本

12.00 欧元

得到显示,所以这解决了我的货币符号问题,但现在格式错误,因为在 ja-JP 文化中不应该有小数点或尾随零,它应该显示为

12 欧元

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 是的,这行得通,谢谢。虽然看起来像一个全能的黑客。不敢相信没有某种内置机制来实现在我看来是相当普通的要求
    猜你喜欢
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 2018-03-29
    • 1970-01-01
    相关资源
    最近更新 更多