【发布时间】:2019-02-23 21:31:24
【问题描述】:
我不明白 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 是坏了还是我错过了什么?
【问题讨论】:
-
API 是为全世界而设计的,而不仅仅是美国/欧洲。有multiple dollar currencies
-
当然,但是在法国没有人使用过
$US,为什么api会返回那个?它不是打算用于现实生活中的格式化操作吗? -
作为加拿大人,如果我用美元购买但只显示“$”,我会假设它是加拿大的。 - 如果我的区域设置为“en-CA”并且我的购买是美元,它会显示“美元”。 - 如果我的语言环境设置为“en-US”并且我的购买是美元,它会显示“$”。
标签: javascript currency number-formatting intl