Neste breve post veremos como funciona o Intl.NumberFormat em partes para entendê-lo melhor e podermos gerar várias strings com valores numéricos formatados corretamente.
Sintaxe
A sintaxe básica é bem simples, instanciamos um objeto que precisa de dois parametros, locales e options. Ambos são opcionais
new Intl.NumberFormat([locales[, options]])
locales: em 99% dos casos nós usaremos as strings com representação do local/país/região representada no nosso objeto. Você provavelmente usará os valores ‘pt-BR’, ‘en’ ou alguma variação parecida. Para um guia completo, confira aqui: https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
const valor = 1999.99; console.log(new Intl.NumberFormat('pt-BR').format(valor)); // saida: 1.999,99 console.log(new Intl.NumberFormat('ar-EG').format(valor)); // saida: ١٬٩٩٩٫٩٩
options: O segundo parâmentro é um pouco mais complicado pois as opções tem várias opções… kkkk… mas faz parte Vejamos um modelo e depois explicarei o que cada coisa faz
const valor = 1999.99; const options = { style : "currency", currency : "BRL", minimumIntegerDigits : 10, minimumFractionDigits : 2, maximumFractionDigits: 5, } console.log(new Intl.NumberFormat('pt-BR', options).format(valor)); // saida: R$ 0.000.001.999,99
style
:
Definição: O estilo do formato a ser utilizado.
Valor Padrão: “decimal”
Valores Permitidos: “decimal"
para formato de número simples, "currency"
para formato monetário e "percent"
para formato percentual;
currency
:
Definição: A moeda para usar na formatação monetária.
Valor Padrão: Não existe. Se o style for “currency”, então o esta propriedade precisa ser informada
Valores Permitidos: Os valores permitidos são os códigos de moedas da ISO 4217, como "USD"
para dólar estadunidense, "EUR"
para euro, ou "CNY"
para RMB chinês — veja a Lista de códigos de moedas e fundos atuais.
minimumIntegerDigits
Definição: A quantidade mínima de dígitos inteiros para utilizar.
Valor Padrão: 1
Valores Permitidos: de 1 a 21
minimumFractionDigits
Definição: A quantidade mínima de dígitos fracionados para utilizar.
Valor Padrão: o padrão para formatos monetários é a menor unidade de dígitos fornecidos pela lista de códigos de moedas ISO 4217 (2 se a lista não fornecer a informação).
Valores Permitidos: de 0 a 20.
maximumFractionDigits
Definição: O número máximo de dígitos fracionados para utilizar
Valor Padrão: o padrão para a formatação de número simples é o maior entre minimumFractionDigits
e 3.
Valores Permitidos: de 0 a 20.
CONCLUSÃO
Isso pessoal, esse foi um tutorial bem simples de como usar uma classe extremamente útil. Para mais detalhes, vejam também a documentação oficial https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat