7

I expect that output for es-ES and de-DE locale to be identical. (I asked my Spanish colleague to check his salary slip, and he confirms that there is indeed a decimal after thousand)

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));

Results:

> "1.000,00 €"
> "1000,00 €"
fedorqui
  • 275,237
  • 103
  • 548
  • 598
maxcc00
  • 345
  • 4
  • 15
  • Related: [Why is Intl.NumberFormat formatting 4 digits together on es-ES locale?](https://stackoverflow.com/q/58430460/1983854) – fedorqui Jan 14 '21 at 10:05

1 Answers1

7

According to the Real Academia Española, the standard form in Spanish is to separate numbers in groups of three, separated with whitespace, if the number has more than four digits, i.e. at least five (Source: https://www.rae.es/dpd/números, section 2.a, in Spanish).

Actually for numbers with five digits, your code gives me the same result for de-DE and es-ES, i.e. a separation with a dot:

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));

gives me

10.000,00 €
10.000,00 €

The separation with dot seems not to be fully correct*, but that the grouping is not done for four-digit numbers seems to be in accord with the language rules of the RAE.

* Actually, also in German, according to the Duden you should use spaces rather than dots, see e.g. https://www.duden.de/sprachwissen/rechtschreibregeln/zahlen-und-ziffern (in German).

fedorqui
  • 275,237
  • 103
  • 548
  • 598