Expansión decimal de una fracción
1/3 sale como 0,(3) y 1/7 como 0,(142857), con el bloque que se repite entre paréntesis, mientras que una fracción que termina, como 1/8, da un 0,125 limpio. Siempre sabrá si un decimal es exacto. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Numerador
- 1
- Denominador
- 8
- Valor
- 0,125
- Decimal
- 0.125
Usted obtiene el valor numérico directo, una cadena decimal exacta construida mediante división larga real y, cuando la expansión se repite indefinidamente, el bloque periódico claramente marcado, de modo que 1/3 regresa como 0.(3) en lugar de un vago 0.3333333333333333. Un denominador igual a cero se rechaza con un error claro, porque la división entre cero no está definida. Todo funciona con aritmética determinista: sin red, sin aleatoriedad y sin más aproximación que el valor final en punto flotante.
Por qué una expansión decimal es más que una división
Cualquiera puede escribir una división en una calculadora y leer unos cuantos dígitos en la pantalla. El problema es que la calculadora decide en silencio cuántos dígitos mostrar, y lo que oculta suele ser la parte que importa. Un tercio no es 0.3333333333: es 0.3 repitiéndose para siempre, y tratar la pantalla truncada como el valor verdadero introduce un error de redondeo que se acumula en cada paso posterior de un cálculo.
En el momento en que un resto aparece por segunda vez, la expansión está garantizada a ciclar desde ese punto, y el bloque periódico se informa con exactitud, entre paréntesis. Las fracciones exactas como 1/8 regresan como una cadena finita y limpia, sin relleno ni dígitos finales espurios, de modo que usted siempre sabe si el decimal que tiene es exacto o una abreviatura de uno infinito.
Cómo funciona el algoritmo
Los signos se tratan por separado para poder dividir la magnitud con aritmética entera sencilla. La parte entera se obtiene de una sola división con redondeo hacia abajo; después, la parte fraccionaria se produce dígito a dígito con el clásico bucle de la escuela: multiplicar el resto por diez, tomar el siguiente dígito y conservar el nuevo resto.
Un mapa de cada resto a la posición donde apareció por primera vez detecta el ciclo en tiempo constante, de modo que una fracción como 1/7 devuelve 0.(142857) tras unos pocos pasos en lugar de vagar para siempre. La expansión tiene un tope estricto de doscientos dígitos fraccionarios; si el ciclo no se ha cerrado para entonces, la cadena se marca como truncada en lugar de fingir que es exacta. El valor numérico directo, calculado una vez en punto flotante, se incluye además para quienes solo necesitan un número.
Dónde encaja en una canalización
La conversión de fracción a decimal aparece dondequiera que los números racionales viajan entre sistemas: plataformas educativas que deben mostrar respuestas exactas, motores de precios que almacenan costes unitarios como fracciones y necesitan decimales para las facturas, herramientas de medición que convierten fracciones imperiales a pulgadas decimales, y suites de pruebas que verifican una biblioteca de matemática simbólica contra una referencia fiable. En cada caso el peligro es el mismo: un redondeo invisible que sobrevive hasta un documento o una base de datos.
Nada de lo que envía se almacena: la fracción se convierte y se descarta, y solo se devuelve la expansión.
Qué puede hacer con ella
Mostrar respuestas exactas en software educativo
Muestre 1/7 como 0.(142857) con el bloque periódico marcado, en lugar de un 0.142857 silenciosamente redondeado que marcaría como incorrecta la respuesta correcta de un estudiante.
Convertir fracciones almacenadas para facturas e informes
Convierta costes unitarios racionales como 7/12 a su forma decimal conociendo exactamente dónde se repite la expansión, antes de dar formato al dinero.
Verificar una biblioteca de matemática simbólica
Compare la salida decimal de su biblioteca contra una referencia determinista de división larga en una suite de pruebas, fracción por fracción.
Preguntas frecuentes
¿Cuánto cuesta?
También es gratis ejecutarlo en su navegador en esta página.
¿Qué ocurre si el denominador es cero?
Las solicitudes con denominador cero no se cobran.
¿Cómo se representan los decimales periódicos?
El bloque periódico se encierra entre paréntesis en la cadena decimal —1/3 se convierte en 0.(3)— y también se devuelve por separado en el campo repeating. Las fracciones exactas no llevan ese campo en absoluto.
¿Hay un límite en la longitud de la expansión?
Sí: la parte fraccionaria tiene un tope de 200 dígitos. Si ningún ciclo se cierra antes, la cadena termina con puntos suspensivos y el resultado se marca como truncado en lugar de presentarse como exacto.
¿Puedo enviar los números como cadenas?
Sí. Se aceptan cadenas numéricas como "22" y "7" y se convierten automáticamente, pero deben interpretarse como números finitos o la solicitud se rechaza.
¿Se almacena la entrada en algún lugar?
No. El numerador y el denominador se procesan en memoria y se descartan; solo se devuelve la expansión decimal.
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/math/decimal \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"numerator":1,"denominator":8}'const res = await fetch("https://api.kit.forhosting.com/math/decimal", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"numerator": 1,
"denominator": 8
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/decimal",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"numerator": 1,
"denominator": 8
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/decimal", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"numerator":1,"denominator":8}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"numerator":1,"denominator":8}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/decimal", 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
{
"numerator": 1,
"denominator": 8
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.decimal",
"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.
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 API de expansión decimal toma una fracción —un numerador y un denominador— y devuelve cómo se ve esa fracción como número decimal. El mismo código que responde a la API se ejecuta gratis en su navegador en esta página, de modo que puede comprobar una fracción puntual a mano y solo pagar cuando automatice la conversión de miles de ellas.
Por qué una expansión decimal es más que una división
Este endpoint realiza la división larga como se haría en papel, conservando cada resto intermedio, y vigila esos restos para detectar una repetición.
Cómo funciona el algoritmo
La entrada se valida primero: ambos campos deben ser números finitos y el denominador no puede ser cero, porque la división entre cero no tiene resultado definido y la solicitud se rechaza con un error invalid_input en lugar de un infinito engañoso.
Dónde encaja en una canalización
Pasar la conversión por este endpoint le da una cadena determinista y repetible que puede comparar, almacenar y auditar, además de una señal explícita cuando la expansión verdadera se repite. Cuesta $0.002 por solicitud a través de la API, sin recargo por unidad, y también es gratis ejecutarlo en su navegador en esta página para comprobaciones puntuales.