Como usar nomes de números em inglês no dia a dia
Quem já precisou preencher um formulário internacional ou processar um documento em dólar já se deparou com a parte chata: escrever o valor por extenso em inglês. A gente sabe que 1.250 é "one thousand two hundred fifty", mas quando o número sobe para algo como 4.582.307, a coisa fica confusa rapidamente. Eu passei anos lidando com isso em extração de dados financeiros e documentações corporativas, então vou explicar direto como funciona na prática.
O básico que poucos explicam direito
Nomes de números em inglês seguem uma lógica bem diferente do português. O primeiro detalhe que quebra a cabeça é a conjunção "and". Em inglês britânico, você obrigatoriamente usa "and" entre as centenas e as dezenas/unidades: 342 vira "three hundred and forty-two". Já no americano, o "and" é raro ou nem aparece. Isso parece bobo, mas já vi gente errar formulários inteiros por causa disso. O segundo ponto é a estrutura de milhões e bilhões. Diferente do português, onde temos "milhão", "bilhão", "trilhão", o inglês junta tudo de forma mais repetitiva: cada casa de três dígitos recebe o sufixo correspondente. Então 1.000.000 é "one million", 1.000.000.000 é "one billion", e assim por diante. A regra é simples: divide-se o número em grupos de três dígitos da direita para a esquerda e aplica-se o sufixo de cada grupo.
nome dos numeros ingles
Aqui vai um exemplo prático que eu uso frequentemente. Pegue o número 6.394.821. Você divide em grupos: 6 | 394 | 821. O primeiro grupo é "six million", o segundo "three hundred ninety-four thousand", o terceiro "eight hundred twenty-one". Juntando: "six million, three hundred ninety-four thousand, eight hundred twenty-one". Note que "thousand" não leva plural, mesmo quando o grupo antes dele é maior que um. Isso é diferente do português e muita gente erra escriendo "thousands". Outro detalhe prático: os hífen. Dezenas de 21 a 99 sempre levam hífen quando escritas por extenso. Twenty-one, forty-five, ninety-nine. Se você pular o hífen em documentos formais, pode causar rejeição em alguns processadores automáticos que validam texto.
Como eu resolvi meu problema com conversão automática
Há alguns anos, eu precisava converter milhares de valores de contratos em Excel para o formato por extenso em inglês. Fazer manualmente demorava cerca de 2 horas para uma planilha com 200 linhas. A solução que encontrei foi usar uma combinação de fórmulas personalizadas com VBA dentro do próprio Excel, mas a abordagem mais eficiente foi migrar para um script Python com a biblioteca num2words. O processo inteiro reduziu de 2 horas para menos de 15 minutos, dependendo do volume. O código é basicamente isso:
from num2words import num2wordsprint(num2words(4582307, lang='en')) O resultado sai como "four million five hundred eighty-two thousand three hundred seven". Note que o "and" não aparece — isso porque o padrão da biblioteca segue a convenção americana. Se você precisa do britânico, precisa especificar lang='en_GB'.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Pegadinhas que ninguém avisa
A primeira pegadinha é com números decimais. A biblioteca num2words trata a parte decimal de forma diferente dependendo do contexto. Para 3,14, o output é "three point one four", não "three point fourteen". Cada dígito após o ponto é lido individualmente. Isso é padrão técnico, mas se você espera que o sistema entenda "fourteen" como um número separado, vai dar erro na validação. A segunda pegadinha envolve zero no meio de números grandes. Por exemplo, 1.001.002. O output correto é "one million, one thousand, two". O zero nas casas intermediárias simplesmente não é mencionado. Isso causa confusão porque a intuitividade do português nos leva a querer dizer "um milhão, zero mil, dois" ou algo similar, mas em inglês isso não existe.
Uma terceira questão é com ordinais. Se o contexto pede "1st", "2nd", "3rd", a função muda. No num2words, usa-se to='ordinal': num2words(1, to='ordinal') retorna "first". Mas atenção: alguns contextos jurídicos exigem que ordinais acima de 20 sigam o padrão "twentieth-first", não "twenty-first". A biblioteca gera "twentieth-first" por padrão, o que está correto, mas vale checar se o seu caso específico exige variação.
Limitações que você precisa saber
O num2words funciona muito bem para números até trilhões (10^12). Acima disso, o comportamento fica imprevisível e você começa a ver falhas nos sufixos. Se você trabalha com números astronômicos ou dados científicos, precisa de uma solução customizada ou de outra biblioteca. Também há o problema de moedas. A conversão de valores monetários exige cuidado extra. num2words(1500.50, to='currency', currency='USD') gera "one thousand, five hundred US dollar and fifty cents". O formato pode não ser exatamente o que seu sistema espera, e ajustar isso manualmente consome mais tempo do que deveria. Em alguns projetos, acabei abrindo mão da biblioteca de moeda e formatando a parte decimal à mão.
Se o seu cenário envolve validação automática rigorosa, como sistemas bancários ou governamentais, recomendo testar todos os casos extremos antes de confiar cegamente na saída. Números como 100, 101, 1.000, 1.001, 10.000 e 1.000.000 são os que mais geram resultados inesperados dependendo da configuração.
Alternativa sem código
Se você não quer programar nada e só precisa de uma conversão pontual, existem ferramentas online gratuitas que fazem o trabalho. O site numbers.name é confiável e suporta tanto en_US quanto en_GB. Basta digitar o número e copiar o resultado. Para uso esporádico, é mais rápido do que configurar qualquer coisa. O problema dessas ferramentas é que você não tem controle sobre o formato de saída. Não dá para pedir para padronizar tudo em maiúsculas, por exemplo, ou para remover as vírgulas. Se o volume de conversão for grande, volta-se para o script Python mesmo.