Formatador de Números Online — Vírgulas, Moeda e Código Intl.NumberFormat
Cole qualquer número e veja instantaneamente como ele aparece formatado como moeda, decimal ou porcentagem em qualquer locale do mundo. Precisa adicionar pontos de milhar a um número grande, formatar um preço em reais para exibição num app, ou gerar o código JavaScript exato que reproduz o resultado? Essa ferramenta faz as três coisas.
Ao contrário de formatadores genéricos que só adicionam separadores de milhar, esta ferramenta expõe toda a potência da API nativa Intl.NumberFormat do browser: escolha o locale, a moeda, a quantidade mínima e máxima de casas decimais e o agrupamento. O snippet de código atualiza em tempo real para você copiar e colar direto no projeto.
Como Usar o Formatador de Números
Formatar um número leva segundos:
- Digite o número na barra de Modo Rápido no topo — o resultado aparece instantaneamente com separadores de milhar no seu locale, transformando
1250500,75em1.250.500,75(pt-BR) ou1,250,500.75(en-US) conforme você digita. - Configure o formato no painel de Configuração Técnica — selecione um locale, escolha o estilo (monetário, decimal ou porcentagem), escolha o código da moeda e defina a quantidade de casas decimais. O resultado atualiza ao vivo.
- Copie o resultado ou o código — clique em "Copiar Resultado" para pegar a string formatada, ou em "Copiar Código" para obter o snippet
Intl.NumberFormatpronto para colar no seu código.
Exemplos de Formatação de Números
Veja como o mesmo número aparece em diferentes configurações:
| Número | Locale | Estilo | Saída |
|---|---|---|---|
1250500,75 |
pt-BR | moeda (BRL) | R$ 1.250.500,75 |
1250500,75 |
en-US | moeda (USD) | $1,250,500.75 |
1250500,75 |
de-DE | moeda (EUR) | 1.250.500,75 € |
1250500,75 |
hi-IN | moeda (INR) | ₹12,50,500.75 |
1250500,75 |
fr-CH | moeda (CHF) | CHF 1'250'500.75 |
1250500 |
pt-BR | decimal | 1.250.500 |
0,45 |
pt-BR | porcentagem | 45% |
A linha da Índia mostra uma diferença crucial: ₹12,50,500.75 usa grupos de dois dígitos após os três primeiros, seguindo o sistema de lakh e crore do Sul da Ásia. Formatadores convencionais erram esse comportamento. O locale hi-IN resolve nativamente via Intl.NumberFormat.
A Suíça também surpreende: CHF 1'250'500.75 usa apóstrofos como separadores de milhar — uma peculiaridade suíça que nenhum regex feito à mão produziria corretamente.
Intl.NumberFormat — O Padrão JavaScript para Formatação
Intl.NumberFormat é a API nativa do JavaScript para formatação de números com consciência de locale. Todo browser moderno e o Node.js suportam sem dependências externas:
new Intl.NumberFormat('pt-BR', {
style: 'currency',
currency: 'BRL',
minimumFractionDigits: 2,
maximumFractionDigits: 2,
}).format(1250500.75);
// → "R$ 1.250.500,75"
O construtor recebe uma tag de idioma BCP 47 (como pt-BR, en-US ou hi-IN) e um objeto de opções. A propriedade style controla se o número aparece como string de moeda, decimal ou porcentagem. useGrouping: false remove todos os separadores — útil para payloads de API onde você precisa de um número puro.
Antes de Intl.NumberFormat ser universalmente suportado, desenvolvedores instalavam bibliotecas como numeral.js ou mantinham substituições de regex por país só para formatar números. Hoje, zero bytes extras são necessários.
Casos de Uso Comuns
- Exibição de preços no e-commerce: Formate o mesmo preço do banco de dados para cada locale da loja —
12,99viraR$ 12,99,€11,99ou$12.99dependendo do país do cliente, tudo com uma única chamadaIntl.NumberFormat. - Dashboards financeiros: Exiba valores de carteira, faturamento e capitalização de mercado com separadores de milhar corretos para que
1250000seja lido como1.250.000(pt-BR) de imediato. - Adicionar pontos de milhar a um número: O caso de uso mais comum — a barra de Modo Rápido no topo foi feita exatamente para isso: cole o número, veja o resultado, copie com um clique.
- Faturas e relatórios: Gere strings com locale correto para documentos enviados a clientes em países diferentes, onde o locale do servidor não bate com o do destinatário.
- Aprendizado e prototipagem: Teste como diferentes combinações de opções do
Intl.NumberFormatinteragem antes de confirmar uma configuração em produção.
Perguntas Frequentes
Como adicionar vírgulas de milhar a um número em JavaScript?
Use Intl.NumberFormat com o estilo decimal e useGrouping: true (o padrão): new Intl.NumberFormat('pt-BR').format(1250500) retorna "1.250.500". Para o locale americano, troque por 'en-US' — ele usa vírgula como separador de milhar e ponto como decimal. Esta ferramenta gera o snippet de código pronto para qualquer configuração.
O que faz minimumFractionDigits no Intl.NumberFormat?
minimumFractionDigits define o mínimo de casas decimais exibidas — o número formatado sempre mostrará pelo menos essa quantidade após a vírgula decimal. Definir como 2 garante que 1250500 apareça como R$ 1.250.500,00 e não R$ 1.250.500. maximumFractionDigits é o teto. Quando ambos são 2, o número sempre mostra exatamente duas casas decimais.
O Intl.NumberFormat suporta o sistema indiano de lakh e crore?
Sim. O locale hi-IN implementa o sistema de numeração indiano nativamente: grupos de dois dígitos após os três primeiros, produzindo ₹12,50,500,75 para 1.250.500,75. Nenhuma lógica extra é necessária — faz parte do padrão Unicode CLDR que os browsers implementam.
Qual a diferença entre o estilo percent e multiplicar por 100?
Intl.NumberFormat com style: 'percent' trata o valor como fração, não como porcentagem — ele multiplica internamente por 100. Passe 0,45 para obter "45%", não 45. Se o seu valor já é uma porcentagem (como 45), divida por 100 antes de formatar: formatter.format(45 / 100). A ferramenta exibe uma nota sobre isso quando você seleciona o estilo Porcentagem.
Como formatar números para países diferentes sem trocar a moeda?
Use o seletor de Locale na Configuração Técnica para sobrescrever o locale de exibição independentemente do código de moeda. Por exemplo, você pode exibir um valor em BRL usando as convenções do locale en-US para obter R$1,250,500.75 em vez de R$ 1.250.500,75. Útil ao exportar dados para audiências internacionais mantendo a moeda original.
Recursos
- MDN — Intl.NumberFormat — Referência oficial com todas as opções do construtor, locales suportados e tabela de compatibilidade de browsers.
- Unicode CLDR — Formatos de Número — Os dados que os browsers usam para separadores, símbolos de moeda e formatação regional específica.