Javascript CAD货币的数字格式不正确
我使用的是Javascript CAD货币的数字格式不正确,javascript,currency,Javascript,Currency,我使用的是Intl.NumberFormat,当我使用英语语言环境将货币设置为CAD时,我得到的是CA$5.00。我以为符号会是$或Can$或C$或CAD,我只是扔了一支简单的代码笔 我是做错了什么,还是什么都没做错?感谢您,Javascript引擎V8使用ICU进行货币(和其他语言环境)格式设置。 ICU使用CLDR。在cldr中,我们有一个已定义的备选名称列表。 因此,当我们将locale设置为US(en_US)并且我们想要美元时,符号是$。但对于同一地区,我们可以得到不同的美元,因此为了区
Intl.NumberFormat
,当我使用英语语言环境将货币设置为CAD时,我得到的是CA$5.00
。我以为符号会是$或Can$或C$或CAD
,我只是扔了一支简单的代码笔
我是做错了什么,还是什么都没做错?感谢您,Javascript引擎V8使用ICU进行货币(和其他语言环境)格式设置。 ICU使用CLDR。在cldr中,我们有一个已定义的备选名称列表。 因此,当我们将locale设置为US(
en_US
)并且我们想要美元时,符号是$。但对于同一地区,我们可以得到不同的美元,因此为了区分它,CDLR返回不同的符号。同样,如果您将区域设置为en\u CA
,将货币设置为CAD
,那么我们将得到符号$
,因为加拿大人将加元称为美元(这里毫不奇怪:)),对于locale='en CA',currency='USD',我们将得到1.00美元
CLDR中有几种可选的美元符号(AUD-A$、BRL-R$和其他一些)
此外,如果我们检查文档中的
当前显示选项可以是符号
、代码
或名称
。如果您通过code
您将获得CAD 1.00
,如果您通过symbol
您将获得CA$1.00
TLDR;Js使用ICU,该ICU使用CDLR为您的病例返回CA$
。您期望什么?请注意,如果更改区域设置,则显示的格式化价格将更改。(例如,试试en-CA和fr-CA)我期望的是C$5.00或Can$5.00。我注意到格式发生了变化,但我认为对于使用en US的CAD,格式是错误的,所以要获得100加元,我应该为语言环境和货币设置什么?我设置了locale='en-CA'和currency='CAD',我只得到100美元。提前谢谢。我现在不知道这是否可行。如果“CA$100”足够,您可以将区域设置设置为“en US”
const price = 5,
locale = 'en-US',
currency = 'CAD';
const formatter = new Intl.NumberFormat (locale, {
style: 'currency',
currency: currency,
});
const formattedPrice = formatter.format (price);