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

我希望 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 €"


FFIVE
浏览 192回答 1
1回答

波斯汪

按照西班牙皇家学院,在西班牙的标准形式是三个一组,用空格隔开的单独号码,如果该号码有多个四位数字,即至少五(来源:https://www.rae.es /dpd/números,第 2.a 节,西班牙语)。实际上对于五位数的数字,您的代码给了我与de-DEand相同的结果es-ES,即用点分隔:let number2 = 10000console.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(德语)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript