Número a letras
Pase un número a palabras en inglés o en español: en modo cheque, 12.5 se convierte en doce con 50/100, la línea de importe para cheques y facturas, y en lectura normal 12.50 se lee doce punto cinco cero. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Valor original
- 0
- Idioma y configuración regional
- En
- Formato en palabras
- Cardinal
- Número en palabras
- zero
Convierte un número canónico en palabras en inglés o español. Use el modo cardinal para lectura natural y el modo cheque para importes con centavos NN/100.
Entrada canónica — sin float ni separadores de miles
La forma válida es un signo menos opcional, dígitos enteros y un punto decimal opcional con fracción. Se rechazan ceros a la izquierda (salvo el propio cero), comas, espacios, el signo más y la notación científica, con error de validación claro. La parte entera admite hasta quince dígitos (de 0 a 10^15−1).
El modo cardinal permite hasta seis decimales; el modo cheque, como máximo dos, y nunca redondea.
Escala corta en inglés y escala formal en español
El inglés usa la escala corta estadounidense: thousand, million, billion para 10^9 y trillion para 10^12. Las decenas compuestas llevan guion (twenty-one) y las centenas no insertan el and británico (one hundred one). El español sigue la tradición formal tipo RAE o cheque: 10^9 es mil millones y 10^12 es billón.
El cien exacto del grupo se dice cien; de 101 a 199 se usa ciento. Las centenas irregulares quinientos, setecientos y novecientos son fijas. La apócope solo actúa ante escala: veintiún mil y treinta y un mil; un 21 suelto sigue siendo veintiuno.
Modo cardinal frente a modo cheque
El modo cardinal deletrea el entero y, si hay punto decimal, cada dígito fraccionario uno a uno tras point o punto, conservando ceros finales (12.50 → twelve point five zero / doce punto cinco cero). El modo cheque es el formato de importe: palabras del entero, luego and NN/100 en inglés o con NN/100 en español, siempre con dos dígitos en los centavos. Un solo decimal se rellena (12.5 → 50/100).
En la versión uno no se añade nombre de moneda; puede anteponer dólares, euros o pesos fuera de la herramienta si el documento lo exige.
Negativos, cero y valores por defecto
Los negativos llevan el prefijo minus o menos delante del cuerpo. El menos cero y el menos cero con fracción nula se colapsan a cero plano para no inventar una forma firmada distinta. Si omite locale se usa inglés; si omite mode se usa cardinal.
Ambos valores efectivos se devuelven en el resultado junto con el value original y el campo words exacto que su flujo puede guardar o imprimir.
Qué puede hacer con ella
Importes de cheque y factura en letras
Genere la línea legal del importe con centavos NN/100 fijos y sin sorpresas de nombre de moneda.
Accesibilidad y lectores de pantalla
Deletree totales mostrados para que la tecnología asistiva lea lenguaje natural en lugar de dígitos crudos.
Documentos bilingües en/es
Produzca redacción en inglés y español a partir del mismo número canónico para contratos y avisos.
Pruebas deterministas en tuberías
Afirme cadenas words exactas en CI sin depender de float ni de librerías de locale del sistema.
Preguntas frecuentes
¿Por qué value debe ser cadena?
La cadena de dígitos mantiene el oráculo solo con aritmética entera.
¿Cuál es el rango?
La parte entera absoluta debe estar entre 0 y 10^15−1 inclusive. Valores mayores devuelven error de validación.
¿El inglés usa and dentro de las centenas?
No. El cardinal inglés es escala corta estadounidense sin and británico entre hundred y el resto. La palabra and solo aparece en modo cheque como separador ante NN/100.
¿Cómo se dice mil en español?
Exactamente mil, nunca un mil. Un millón es un millón; mil millones es 10^9; un billón es 10^12.
¿Se redondean los decimales en modo cheque?
No. Más de dos dígitos fraccionarios es error. Un solo dígito se rellena con un cero para formar los centavos.
¿La herramienta del navegador es gratis?
Sí. La página corre en local y es gratis en navegadores de escritorio y móvil.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/text/number-to-words \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"1234.56"}'const res = await fetch("https://api.kit.forhosting.com/text/number-to-words", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "1234.56"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/number-to-words",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "1234.56"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/number-to-words", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"1234.56"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"1234.56"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/number-to-words", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"value": "1234.56"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.number_to_words",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_int_digits | 15 |
max_frac_digits_cardinal | 6 |
max_frac_digits_check | 2 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
La página gratuita y la API comparten un oráculo determinista: misma entrada, mismas palabras, siempre.
Entrada canónica — sin float ni separadores de miles
El campo value debe ser una cadena para que los enteros grandes no pasen por IEEE-754. Esa forma estricta mantiene estables los importes bancarios y las facturas grandes entre el navegador y la API.