I have this sample of code:
const formCurrency = new Intl.NumberFormat('pt-BR', {
style: 'currency',
currency: 'BRL',
minimumFractionDigits: 2
})
if the input is:
var money = 1000.50 formCurrency.format(money)
the expected output is: R$ 1.000,50,
but instead it gives: R$ 1,000.50
Does anyone know how to change the , with ., or other way to do this using Intl?
I’ve already tried changing the locale to de-DE, but doesn’t work as well. With other style the R$ changes, but the rest of the punctuation don’t.
Advertisement
Answer
Thanks to Alvaro, I’ve found a way. According to MDN and Node documentation itself, Node.js support only en-US locale. So to make it work I needed to:
- install the
full-icupackage withnpm i full-icu - do a
npm-rebuildafter the instalation add inside the
package.jsonfile, add the code:"scripts": { "start":"node --icu-data-dir=node_modules\full-icu YOURAPP.js" }- run the node application with
npm start
Now it gets the correct locale and do the correct punctuation too.