Como escrever números por extenso em português
Escrever números por extenso parece simples até você tentar o número 149.375 e perceber que a ortografia não é tão intuitiva assim. Esse processo de converter algarismos em palavras envolve regras de concordância, hyphenagem e casos especiais que muita gente aprende na escola mas esquece rápido.
O básico para escreva o nome dos numeros
Vamos começar direto. Os números de zero a vinte têm nomes próprios. Dezesseis, dezessete, dezoito — repare que não tem hífen no meio, apesar do "dez" e do "seis" serem palavras diferentes. A partir do onze, a estrutura muda e entra o "e" como conector entre centenas, dezenas e unidades. Cem é a forma curta, mas quando aparece antes de outro número vira "cento": cento e um, cento e vinte e três. Duzentos, trezentos, quatrocentos... aqui tudo segue o padrão regular com acréscimo de "-entos".
Dez, onze, doze, treze, quatorze (ou treze, dependendo da região), quinze, dezesseis, dezessete, dezoito, dezenove. Aí vem a casa das dezenas: vinte, trinta, quarenta, cinquenta, sessenta, setenta, oitenta, noventa. A regra do "e" aparece aqui também: vinte e um, trinta e quatro, oitenta e nove. Repare que "e" não se usa quando a unidade é zero: cem, duzentos, quinhentos.
Centenas, milhares e a parte chata
As centenas seguem: duzentos, trezentos, quatrocentos, quinhentos, seiscentos, setecentos, oitocentos, novecentos. Note que quinhentos vem de "cinco" mas perde o "c". Seiscentos vem de "seis". Setecentos de "sete". Nada de óbvio, não. Milhares exige atenção ao gênero. Mil é invariável, mas milhar tem plural: dois mil, três mil, dois milhao (erro comum: o correto é dois milhões, só a partir de um milhão que varia). Um milhão, dois milhões, três bilhões, etc.
O hífen entra quando os componentes formam uma expressão composta. Um mil e duzentos — sem hífen. Mas vinte e um, cinquenta e seis — também sem, porque o conector é "e". O hífen aparece mesmo em números compostos como vinte-e-um? Não. Em português brasileiro, não se usa hífen nesse caso. Você escreve vinte e um, separado. Isso vale pra qualquer parte: cento e e vinte e cinco. O "e" substitui qualquer hífen.
Um problema real que eu enfrentei
Trabalhei num sistema de geração de cheques onde precisávamos converter qualquer valor em reais para extenso automaticamente. O problema era o handling de centavos. Valores como R$ 1.000,00 tinham que virar "um mil reais", mas R$ 1.000,01 virava "um mil reais e um centavo". A parte que mais causava bug era quando o valor era exatamente centavos sem reais — tipo R$ 0,57. Tem gente que colocava "zero reais e cinquenta e sete centavos", o que é tecnicamente aceitável mas em contexto financeiro formal soa mal. A solução foi tratar o caso zero explicitamente e gerar apenas "cinquenta e sete centavos". Outro ponto: vírgula e ponto. Em português, vírgula separa decimais. Se o sistema recebia o número como float 1500.75 (notação anglo-saxônica), ele invertia tudo. Eu sempre passei a input como string formatada com vírgula decimal ou tratava a conversão separando parte inteira e fracionária com divisão inteira e módulo.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Números grandes e exceções que ninguém conta
Quinhentos — esse é um dos mais problemáticos. Vem de "cinco" + "gentos", e soa estranho porque ninguém relaciona com cinco na cabeça. Oitozentos vem de "oito". Tudo bem, pelo menos esses dois seguem lógica morfológica. Os números 16 a 19 merecem atenção: na norma culta brasileira, usa-se dezesseis, dezessete, dezoito, dezenove (sem hífen, "s" no meio). Já em Portugal e em normas mais formais, dezasseis, dezassete etc. se for seguir a variante portuguesa. Se for escrever para um público brasileiro, mantém o "s".
Agora algo que quase ninguém lembra: 110 se escreve cento e dez, não "hum décimo". O "cem" só é sozinho. A partir de 101, é "cento". Isso pega muita gente.
Limitações práticas
A conversão manual é viável até uns milhões. Acima disso, o risco de erro cresce exponencialmente. Números com muitas casas decimais ou valores astronômicos (milhares de milhões, trilhões) ficam verbosos e propensos a enganos. Se você precisa fazer isso frequentemente, use uma biblioteca — existem várias em Python (como o próprio módulo num2words que suporta pt-BR e pt-PT), JavaScript, e outras linguagens. A desvantagem dessas bibliotecas é que algumas não lidam bem com variação regional. O num2words por exemplo distingue português do Brasil de Portugal, mas se você passar lang='pt' genérico, o comportamento pode não ser o esperado. Sempre teste com os valores que seu sistema vai encontrar.
Erros frequentes para evitar
Dois milhões e meio — sim, existe essa construção. Meio concorda em gênero mas não em número: "duas horas e meia", "dois milhões e meio". Ponto importante. Quinhentos e não "quinhondos" ou "quingentos". Trezentos, não "trezantos". Cinzcocentos — pare de escrever assim, é quinhentos mesmo.
Cem mil, não "cento mil". Cem milhões, não "cento milhões". Lembre-se: centos só aparece quando há algo depois (cento e um, cento e vinte). Quando o número termina em cem, ele permanece "cem". Os prefixos milionescos seguem: milhar (10^3), milhão (10^6), bilhão (10^9), trilhão (10^12), quatrilhão (10^15). Acima disso, a nomenclatura varia muito e raramente alguém usa no cotidiano.
A prática
A melhor forma de se fixar é escrever todos os números de 1 a 100 por extenso e depois aplicar a regra de composição: [centena] e [dezena] e [unidade], com exceções onde o "e" não entra (quando a dezena ou unidade é zero). Para o uso profissional — contabilidade, jurídicos, emissão de documentos — a recomendação é automatizar. A norma da Receita Federal e os órgãos reguladores exigem precisão absoluta. Um erro de "vintee" no lugar de "vinte e" num extrato pode ser questionado juridicamente. Não vale o risco de fazer na mão.
Se você está começando a lidar com isso agora, treine com os valores intermediários: 149, 375, 1051, 2000, 500000. São os que mais confundem porque quebram padrões óbvios. Depois que dominar esses, o resto segue automático.