我不明白NumberFormat的工作原理。
在法国,我们从不使用$US
,为什么我得到以下内容?
new Intl.NumberFormat("fr-FR",{
style: 'currency',
currency: 'USD',
minimumFractionDigits: 2,
}).format("345")
"345,00 $US"
new Intl.NumberFormat("fr-FR",{
style: 'currency',
currency: 'EUR',
minimumFractionDigits: 2,
}).format("345")
"345,00 €"
此外:以下内容对我也没有任何意义。我尝试使用随机语言环境来查看影响,并针对以下2种方法获得了不同的结果:
new Intl.NumberFormat("en-HOS",{
style: 'currency',
currency: 'USD',
minimumFractionDigits: 2,
}).format("345")
"345,00 $US"
new Intl.NumberFormat("en-HOSSDDG",{
style: 'currency',
currency: 'USD',
minimumFractionDigits: 2,
}).format("345")
"$345.00"
此API是否损坏或我错过了什么?
答案 0 :(得分:1)
在JS中格式化数字时,您需要使用窄选项
“ narrowSymbol”使用窄格式符号(“ $ 100”而不是“ US $ 100”),
const amount = 123444;
console.log(new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD', currencyDisplay: 'narrowSymbol'}).format(amount));
答案 1 :(得分:0)
V8 JavaScript引擎正在使用iCU的ICU库。
在此处查看所有货币数据:https://github.com/unicode-org/icu/tree/master/icu4c/source/data/curr
但是可以肯定的是,法国人在谈论美元时使用的是 $ 而不是 $ US 。