【发布时间】:2018-12-13 11:31:23
【问题描述】:
在给定数字和货币的情况下,我找不到将它们打印到给定文化的字符串的选项。我找到的最接近的东西是decimal.ToString("C", GIVEN_CULTURE),但这不会要求货币,并且会假设我在谈论文化所知道的货币。如果我在欧洲使用美元怎么办?
例如,Javascript 在构建字符串时会同时请求这两个参数:
GIVEN_STRING.toLocaleString(culture, { style: 'currency', currency: currency })
这是相关的,因为我正在开发的软件同时处理美元和 MXN(墨西哥比索)。我们的网络仪表板显示不同的文化符号(Chrome 示例,我认为跨浏览器会有所不同):
zh:
- USD 的符号为“$”
- MXN 有符号“MX$”
es-MX:
- USD 的符号为“US$”
- MXN 有符号“$”
【问题讨论】:
-
你有文化里面的货币信息 ->
CultureInfo.NumberFormat.Currency -
是的,但就我而言,在欧洲的货币是欧元。我想显示美元,但我知道我要打印的金额是美元。如果我依赖你提到的属性,它会打印 €!
-
CurrencySymbol 属性有一个setter,你可以随意设置。
-
但是我会使用文化的其他方面,如 CurrencyDecimalDigits 或 CurrencyDecimalSeparator “错误”,这意味着我将显示美元,就好像它们是欧元一样,除了符号
-
显示外币时,我会使用
dm.ToString("N2", localCulture),然后附加(或前置)ISO 货币代码,例如"USD"或"MXN"。我认为许多文化都没有关于如何显示其他国家货币的惯例。
标签: c# currency cultureinfo culture