Mengapa output dengan Intl.NumberFormat berbeda saat menggunakan style: 'currency' dibandingkan saat hanya memformat angka biasa?

Untuk beberapa alasan saat memformat sebagai mata uang, ia menggunakan aturan pemisah titik koma yang berbeda saat menggunakan lokal yang sama.

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
0
thijscrombeen 19 November 2020, 13:29

1 menjawab

Jawaban Terbaik

Anda akan mendapatkan masalah yang sama dengan en-DE

Jika Anda ingin format Eropa gunakan lokal yang valid. nl-BE atau de-BE (€2.222,22) atau fr-BE ((€2 222.22))

console.log(new Intl.NumberFormat('nl-BE').format(2222.22))
// 2.222,22
console.log(new Intl.NumberFormat('nl-BE', {
  currency: 'EUR',
  style: 'currency'
}).format(2222.22))
// €2.222,22 
2
mplungjan 19 November 2020, 10:46