为了账号安全,请及时绑定邮箱和手机立即绑定

intl.NumberFormat 显示 es-ES 货币格式的错误结果

intl.NumberFormat 显示 es-ES 货币格式的错误结果

FFIVE 2022-01-07 20:49:16
我希望 es-ES 和 de-DE 语言环境的输出是相同的。(我让我的西班牙同事查了他的工资单,他确认千后确实有小数)var number = 1000;console.log(new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(number));console.log(new Intl.NumberFormat('es-ES', { style: 'currency', currency: 'EUR' }).format(number));结果:> "1.000,00 €"> "1000,00 €"
查看完整描述

1 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

按照西班牙皇家学院,在西班牙的标准形式是三个一组,用空格隔开的单独号码,如果该号码有多个四位数字,即至少五(来源:https://www.rae.es /dpd/números,第 2.a 节,西班牙语)。


实际上对于五位数的数字,您的代码给了我与de-DEand相同的结果es-ES,即用点分隔:


let number2 = 10000

console.log(new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(number2));

console.log(new Intl.NumberFormat('es-ES', { style: 'currency', currency: 'EUR' }).format(number2));

给我


10.000,00 €

10.000,00 €

用点分隔似乎并不完全正确*,但未对四位数字进行分组似乎符合 RAE 的语言规则。


* 实际上,在德语中,根据 Duden 的说法,您应该使用空格而不是点,请参见例如https://www.duden.de/sprachwissen/rechtschreibregeln/zahlen-und-ziffern(德语)。


查看完整回答
反对 回复 2022-01-07
  • 1 回答
  • 0 关注
  • 191 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信