Intl.NumberFormat:货币和数字的区别

为什么使用 style: 'currency' 时 Intl.NumberFormat 的输出与仅格式化常规数字时不同?


由于某种原因,当格式化为货币时,它在使用相同的区域设置时使用不同的逗号分隔符规则。


console.log(new Intl.NumberFormat('en-BE').format(2222.22))

// 2.222,22

console.log(new Intl.NumberFormat('en-BE', {

  currency: 'EUR',

  style: 'currency'

}).format(2222.22))

// €2,222.22 -> I expect €2.222,22


九州编程
浏览 61回答 1
1回答

萧十郎

使用 en-DE 也会遇到同样的问题如果您想要欧洲格式,请使用有效的区域设置。nl_NL、nl-BE、de-BE (€ 2,222.22)fr-BE (2 222,22 €)console.log(new Intl.NumberFormat('nl-NL').format(2222.22))// 2.222,22const opts = {  currency: 'EUR',  style: 'currency'}console.log(new Intl.NumberFormat('nl-NL', opts).format(2222.22))// € 2.222,22 console.log(new Intl.NumberFormat('fr-BE', opts).format(2222.22))// 2 222,22 €
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript