6

我正在尝试使用 Intl.NumberFormat 编写货币格式化函数。当我将美元或欧元作为货币传递时,它可以正常工作,但当我传递更模糊的货币代码(如 PLN 或 COL)时,它似乎会中断,而不是按要求显示它们的符号,而是显示代码。它可以清楚地识别代码,因为当我要求它显示名称时,它可以正常工作:

Intl.NumberFormat("en-US",{
  style:'currency',
  minimumIntegerDigits:1,
  currency: 'PLN',
  currencyDisplay: 'symbol'
}).format(43);

显示“PLN43”,同时

Intl.NumberFormat("en-US",{
  style:'currency',
  minimumIntegerDigits:1,
  currency: 'PLN',
  currencyDisplay: 'name'
}).format(43);

显示“43.00 波兰兹罗提”

4

2 回答 2

2

Intl.NumberFormat 应该有你需要的符号,你只需要确保你指定了正确的语言代码。

您可以在此处找到 ISO 语言代码的映射: https ://www.w3schools.com/tags/ref_language_codes.asp

在这种情况下,您将需要使用波兰值“pl”而不是“en-US”

Intl.NumberFormat("pl",{
  style:'currency',
  minimumIntegerDigits:1,
  currency: 'PLN',
  currencyDisplay: 'symbol'
}).format(43);
于 2019-09-30T16:03:15.300 回答
1

根据规范

但是,本地化货币符号可用的货币代码和语言标签组合的集合取决于实现。如果本地化货币符号不可用,则使用 ISO 4217 货币代码进行格式化。

于 2016-05-12T19:33:13.060 回答