Ferramentas
Guias

Formatador de números

Conversão

Formate números com Intl.NumberFormat — separadores de milhares, notação científica, precisão e moeda para qualquer localidade.

100% no cliente Sem backend
Saída
Nesta página

O que é um formatador de números?#

O mesmo número é escrito de forma diferente em locais diferentes. 1234567.89 em inglês dos EUA é 1,234,567.89; em alemão é 1.234.567,89 (pontos e vírgulas trocam de papel); em hindi é 12,34,567.89 (agrupado em lakhs de dois dígitos, não em milhares de três); em inglês compacto encolhe para 1.23M. Nenhum destes está “errado” — cada um é a convenção local correta, e acertar importa em recibos, painéis e em qualquer número que um humano lê.

Esta página é um front-end vivo do Intl.NumberFormat nativo do navegador, o mesmo motor que as aplicações de produção usam. Indica-se um número cru e escolhe-se um estilo (decimal simples, moeda ou percentagem), uma notação (padrão, científica, de engenharia ou compacta), um locale, limites de dígitos fracionários e um interruptor de agrupamento. Ele renderiza a string localizada correta instantaneamente, sem tabelas de separadores escritas à mão que envelhecem mal.

Como usar#

  1. Escreva um Valor (a página arranca com 1234567.89). Decimais simples e notação científica como 1.23e5 funcionam ambos; entrada agrupada como 1,000 é rejeitada propositadamente para que texto ambíguo nunca seja reformatado silenciosamente.
  2. Escolha um Estilo: decimal (número simples), moeda (revela o seletor de moeda — USD, EUR, GBP, JPY, CNY, INR e mais, todos códigos ISO 4217), ou percentagem (multiplica por 100 e adiciona o sinal de percentagem do locale).
  3. Escolha uma Notação: padrão, científica (1.23E6), engenharia (expoente sempre múltiplo de 3), ou compacta (1.23M, 1.23亿).
  4. Escolha uma Localidade na lista representativa (en-US, zh-CN, de-DE, hi-IN, ja-JP …). A saída volta a renderizar no momento em que a mudar.
  5. Ajuste Mín. decimais / Máx. decimais (0–20) e a caixa Agrupamento de milhares (separadores de milhares ligados ou desligados). O campo Saída atualiza-se em tempo real; Copiar recolhe-o.

Principais recursos#

  • Intl nativo do navegador. Usa o mesmo Intl.NumberFormat que o seu runtime fornece, pelo que a saída corresponde ao que uma verdadeira aplicação localizada produz — sem biblioteca de formatação terceira, sem tabela de consulta desatualizada.
  • Agrupamento correto por locale. Trata o agrupamento ocidental de milhares (1,234,567), o agrupamento indiano em lakhs (12,34,567), o agrupamento chinês de quatro dígitos (estilo 123,4567) e a troca de ponto/vírgula alemã automaticamente mal escolha o locale.
  • Notações compacta e de engenharia. A compacta colapsa valores grandes em 1.23M / 1.23B (ou 123万 / 12亿 em locais CJK); a de engenharia mantém o expoente em múltiplo de 3, o que alinha de forma limpa com prefixos SI.
  • Moeda e percentagem integrados. A moeda aceita qualquer código ISO 4217 e coloca o símbolo/etiqueta onde esse locale espera (antes ou depois dos dígitos); a percentagem aplica o próprio sinal e espaçamento do locale.
  • Controlo de dígitos fracionários. Fixe os dígitos fracionários mínimos e máximos (0–20) para forçar zeros à direita ou limitar decimais ruidosos — os mesmos controlos que Intl.NumberFormat expõe.

Exemplo detalhado#

Com o padrão 1234567.89, estilo decimal, notação padrão, agrupamento ligado, troque apenas a Localidade e veja os separadores mudarem:

en-US:   1,234,567.89
de-DE:   1.234.567,89
hi-IN:   12,34,567.89

A linha alemã troca o . e a , relativamente à linha dos EUA. A linha hindi agrupa os últimos seis dígitos como 12,34,567 — um lakh equivale a cem mil, pelo que a convenção indiana agrupa em 2-2-3 a partir da direita em vez de 3-3-3. Ambas estão corretas para o seu locale; um formatador codificado à mão costuma errar uma delas.

Agora mude a notação para compacta e o mesmo valor colapsa:

en-US:   1.23M
zh-CN:   123.46万
ja-JP:   123万

O inglês usa o M ao estilo SI (milião); o chinês e o japonês usam a unidade nativa 万 (dez mil), pelo que 1 234 567 fica em “123,46 dezenas de milhar” em vez de “1,23 milhões” — a mesma quantidade, quatro representações culturalmente esperadas diferentes.

Perguntas frequentes#

Porque é que a minha entrada agrupada como 1,000 é rejeitada?#

Porque a vírgula é ambígua: em en-US é um separador de milhares, mas em de-DE é o ponto decimal. Aceitá-la significaria adivinhar silenciosamente o locale da entrada. Em vez disso, a ferramenta recebe um valor numérico cru e aplica o agrupamento do locale escolhido na saída — inequívoco em ambos os sentidos.

Porque é que o modo compacto mostra 1.23M em inglês mas 123.46万 em chinês?#

Porque a notação compacta usa as próprias palavras de magnitude de cada locale. O inglês conta em milhares, milhões, biliões (potências de 1000); o chinês e o japonês contam em 万 (dez mil) e 亿 (cem milhões), que são potências de 10000. O número subjacente é idêntico; só a unidade convencional de agrupamento difere.

Quando usaria notação de engenharia em vez de científica?#

Ambas exprimem um número como uma mantissa vezes uma potência de 10, mas a de engenharia força o expoente a múltiplo de 3 (1,234567 × 10⁶, e não 1,234567 × 10⁶,algo), o que mapeia diretamente para prefixos SI (quilo, mega, giga…). Recorra a ela quando a saída vai ficar ao lado de unidades físicas; use a científica quando quer apenas uma forma compacta e normalizada.

A opção de moeda converte câmbios?#

Não. O modo moeda apenas formata — escreve 1234.56 como $1,234.56 (en-US) ou 1.234,56 € (de-DE) usando a colocação do símbolo do locale. Não converte USD para EUR. Os câmbios mudam de minuto a minuto e exigiriam um feed de dados ao vivo que esta página propositadamente não tem.