Número por Extenso
Converta números para texto por extenso em português.
Gratis ate 10 MB por arquivo100 MB por enviosem anuncio antes do limite
$titulo = 'Número por Extenso';
$descricao = 'Converta números para texto por extenso em português brasileiro';
$palavrasChave = 'numero por extenso, escrever numero, texto, conversor';
$numero = '';
$resultado = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$numero = $_POST['numero'] ?? '';
$numeroLimpo = str_replace(['.', ',', ' '], '', $numero);
if (is_numeric($numeroLimpo)) {
$numeroInt = intval($numeroLimpo);
$resultado = numeroParaExtenso($numeroInt);
}
}
function numeroParaExtenso($numero) {
if ($numero === 0) {
return 'zero';
}
if ($numero < 0) {
return 'menos ' . numeroParaExtenso(abs($numero));
}
$unidades = ['', 'um', 'dois', 'três', 'quatro', 'cinco', 'seis', 'sete', 'oito', 'nove'];
$dezOnze = ['dez', 'onze', 'doze', 'treze', 'quatorze', 'quinze', 'dezesseis', 'dezessete', 'dezoito', 'dezenove'];
$dezenas = ['', '', 'vinte', 'trinta', 'quarenta', 'cinquenta', 'sessenta', 'setenta', 'oitenta', 'noventa'];
$centenas = ['', 'cento', 'duzentos', 'trezentos', 'quatrocentos', 'quinhentos', 'seiscentos', 'setecentos', 'oitocentos', 'novecentos'];
$centenaExata = ['', 'cem', 'duzentos', 'trezentos', 'quatrocentos', 'quinhentos', 'seiscentos', 'setecentos', 'oitocentos', 'novecentos'];
$grupos = ['', 'mil', 'milhão', 'bilhão', 'trilhão', 'quatrilhão', 'quintilhão'];
$pluralGrupos = ['', 'mil', 'milhões', 'bilhões', 'trilhões', 'quatrilhões', 'quintilhões'];
$partes = [];
$grupoIndex = 0;
while ($numero > 0) {
$grupo = $numero % 1000;
$numero = intval($numero / 1000);
if ($grupo > 0) {
$grupoTexto = '';
// Centenas
$centena = intval($grupo / 100);
$resto = $grupo % 100;
if ($centena > 0) {
if ($resto === 0 && $centena === 1) {
$grupoTexto = 'cem';
} else {
$grupoTexto = $centenas[$centena];
}
}
// Dezenas e unidades
if ($resto > 0) {
if ($grupoTexto !== '') {
$grupoTexto .= ' e ';
}
if ($resto < 10) {
$grupoTexto .= $unidades[$resto];
} elseif ($resto < 20) {
$grupoTexto .= $dezOnze[$resto - 10];
} else {
$dezena = intval($resto / 10);
$unidade = $resto % 10;
$grupoTexto .= $dezenas[$dezena];
if ($unidade > 0) {
$grupoTexto .= ' e ' . $unidades[$unidade];
}
}
}
// Adiciona o grupo (mil, milhões, etc)
if ($grupoIndex === 1) {
$partes[] = $grupoTexto . ' ' . $grupos[$grupoIndex];
} elseif ($grupoIndex > 1) {
if ($grupo === 1) {
$partes[] = 'um ' . $grupos[$grupoIndex];
} else {
$partes[] = $grupoTexto . ' ' . $pluralGrupos[$grupoIndex];
}
} else {
$partes[] = $grupoTexto;
}
}
$grupoIndex++;
}
// Junta as partes
$partes = array_reverse($partes);
$resultado = '';
for ($i = 0; $i < count($partes); $i++) {
if ($i > 0) {
if ($partes[$i] !== '' && strpos($partes[$i], 'mil') === false) {
$resultado .= ' e ';
} elseif ($partes[$i] !== '' && strpos($partes[$i], 'mil') !== false) {
$resultado .= ' ';
}
}
$resultado .= trim($partes[$i]);
}
return trim($resultado);
}
?>
📚 Exemplos
1
um
15
quinze
42
quarenta e dois
100
cem
1.234
mil duzentos e trinta e quatro
1.000.000
um milhão
Proximo passo recomendado
Faca este resultado trabalhar por voce
A Minike conecta a ferramenta que voce esta usando com o produto que tem maior chance de gerar valor recorrente.
R$ 49,90/mo
Minike Ferramentas Pro
Conversoes maiores, sem anuncios principais e prioridade.
Gratis: 10 MB por arquivo e 100 MB por lote.
R$ 29,90/mo
Minike Sites
Transforme arquivos convertidos em paginas, landing pages e lojas.
Previa gratis antes de publicar.
Precos exibidos para Brasil e EUA. O checkout local cobra em BRL ate ativarmos gateway internacional.