Una calculadora en línea da una respuesta limpia para un cálculo decimal y una cadena de dígitos inesperados para el siguiente. La diferencia no es aleatoria ni un defecto de software — es una consecuencia predecible de cómo la aritmética de punto flotante representa números en binario. Una vez que entiendes el sistema, las sorpresas se vuelven comprensibles: puedes saber de un vistazo qué resultados esperar exactamente y cuáles llevarán un pequeño error oculto.
El estándar detrás de toda calculadora basada en navegador: IEEE 754
Cada lenguaje de programación importante, y cada navegador que ejecuta JavaScript, almacena números decimales según el estándar IEEE 754 para aritmética de punto flotante binaria, publicado por primera vez en 1985 por el Instituto de Ingenieros Eléctricos y Electrónicos. La versión actual, IEEE 754-2019, fue publicada en julio de 2019. Casi todas las unidades de punto flotante de hardware, desde procesadores de laptops hasta smartphones, implementan este estándar.
Las calculadoras en línea — incluyendo la de arriba — usan la variante específica llamada doble precisión (binary64): 64 bits por número, con 53 bits dedicados a dígitos significativos y el resto codificando la escala (el exponente). Ese significando de 53 bits te da aproximadamente 15 a 17 dígitos decimales significativos de precisión. Para la mayoría de los usos cotidianos eso es más que suficiente — pero el formato impone una limitación estructural que ocasionalmente se manifiesta como resultados inesperados.
La causa raíz: las fracciones binarias no pueden representar todos los decimales exactamente
Una computadora trabaja en base 2. Cada número que almacena se construye a partir de potencias de 2: 1/2, 1/4, 1/8, 1/16…. Cualquier fracción decimal que pueda expresarse como suma finita de esas potencias — como 0.5 (= 1/2), 0.25 (= 1/4) o 0.125 (= 1/8) — se almacena exactamente. Cualquier otra fracción decimal requiere una secuencia binaria infinita, que el formato de 64 bits debe redondear al valor representable más cercano.
La situación es análoga a la notación decimal y las fracciones de 3. No puedes escribir 1/3 exactamente en decimal — es 0.333333… para siempre. Lo redondeas a cierta cantidad de decimales y aceptas un pequeño error. La aritmética de punto flotante hace lo mismo, pero en base 2, y las fracciones problemáticas son diferentes: 1/5 (= 0.2), 1/10 (= 0.1) y 3/10 (= 0.3) son todas fracciones infinitas periódicas en binario.

Cómo se acumulan los errores de redondeo en los cálculos
Un solo valor redondeado introduce un error tan pequeño — típicamente en el decimal 16 o 17 — que es invisible en el uso cotidiano. El problema crece cuando múltiples valores redondeados interactúan en una cadena de operaciones. Cada paso puede amplificar el error o cancelarlo, y el resultado no siempre es predecible solo con inspección.
Algunos patrones que suelen mostrar dígitos inesperados:
- Suma de muchos decimales — sumar diez valores como 0.1 cada uno da
0.9999999999999999en lugar de exactamente 1, porque el error de redondeo en cada 0.1 se acumula. - Multiplicación por números cercanos a 1 —
1.1 × 3devuelve3.3000000000000003en JavaScript; la pequeña sobreestimación de 1.1 en binario se magnifica con la multiplicación. - Resta de números casi iguales (cancelación catastrófica) — restar dos valores cercanos puede perder muchos dígitos significativos:
1.0000000000000002 - 1revela la diferencia que normalmente sería invisible. - Operaciones repetidas — dividir seguido de multiplicar por el mismo valor no siempre devuelve el número original exactamente, porque cada paso introduce su propio redondeo.
Ejemplos que puedes probar en la calculadora arriba
La calculadora arriba usa el motor nativo de punto flotante de 64 bits de JavaScript — no se aplica redondeo extra más allá de Math.round(result * 1e10) / 1e10, que suaviza errores en el décimo decimal pero deja visibles los posteriores. Esto la hace una ventana confiable al comportamiento real del punto flotante.
0.1 + 0.2→0.30000000000000004(el caso más famoso)1.1 × 3→3.30000000000000030.1 × 0.1→0.0100000000000000021 ÷ 3 × 3→1(los errores se cancelan en este caso)0.5 + 0.25→0.75(exacto — ambos son potencias de dos)
Observa que los resultados "limpios" aparecen precisamente donde los valores involucrados son fracciones binarias exactas. Los dígitos inesperados aparecen donde no lo son.
Qué significa el límite de precisión en la práctica
La doble precisión IEEE 754 te da alrededor de 15 a 17 dígitos decimales significativos antes de que se fuerce cualquier redondeo. Para la gran mayoría de usos esa precisión es enorme: una medida precisa a 10 decimales, una cifra financiera con 14 dígitos significativos o una constante física usada en un cálculo de ingeniería entran cómodamente en este rango.
Las situaciones donde el límite importa:
- Software financiero — los cálculos de moneda acumulan pequeños errores de redondeo en millones de transacciones. Los sistemas financieros en producción usan aritmética de punto fijo (enteros que representan centavos completos) en lugar de punto flotante para evitar esto por completo.
- Simulaciones científicas — métodos numéricos de larga duración (modelos climáticos, dinámica de fluidos) acumulan redondeos en millones de pasos; los investigadores usan precisión extendida o bibliotecas numéricas dedicadas.
- Comparaciones de igualdad en código — preguntar "¿es este resultado exactamente 0.3?" casi siempre es incorrecto; la práctica estándar es verificar si el resultado está dentro de una pequeña tolerancia respecto a 0.3.
Cómo evitar sorpresas con punto flotante
- Para cálculos cotidianos — el error está en el decimal 16 y no tiene impacto práctico. Confía en el resultado.
- Para trabajo financiero en una calculadora general — redondea el resultado final al número requerido de decimales (por ejemplo, 2 para moneda) y considera solo el valor redondeado como significativo.
- Para verificar si un error es de punto flotante — ingresa la misma expresión en una sesión nueva y compara; los errores de punto flotante son deterministas, así que la respuesta será idéntica cada vez para la misma expresión.
- Para identificar entradas seguras — los valores que son potencias exactas de fracciones de 2 (0.5, 0.25, 0.125, 0.0625…) o enteros siempre se almacenan exactamente. Si puedes replantear tu problema en esos términos, eliminas la fuente del error.
Compruébalo tú mismo: ingresa1.1 × 3en la calculadora arriba, luego0.5 × 3. El primero da una pequeña cola de dígitos inesperados; el segundo da un limpio 1.5. Ese contraste resume toda la historia del punto flotante: entradas binarias exactas, respuestas binarias exactas; entradas no binarias exactas, redondeo en el límite de precisión.