Escribe 0.1 + 0.2 en la calculadora de arriba y verás 0.30000000000000004 en lugar del ordenado 0.3 que esperabas. La calculadora no está rota — te está mostrando el resultado exacto de un problema aritmético binario específico. Entender ese problema lleva menos de cinco minutos y cambiará la forma en que interpretas cualquier resultado decimal de cualquier calculadora digital.
Por qué 0.1 no puede almacenarse exactamente en binario
Todos los números dentro de un ordenador se almacenan en binario — base 2, usando únicamente los dígitos 0 y 1. Las fracciones que parecen simples en decimal (base 10) son con frecuencia fracciones decimales infinitas y periódicas en binario, exactamente igual que 1 ÷ 3 = 0,3333… se repite indefinidamente en decimal.
El número decimal 0.1 es una de esas fracciones. En binario es 0.0001100110011001100110011… — un patrón que se repite sin fin. Un ordenador que usa el estándar IEEE 754 de doble precisión (el formato que utiliza JavaScript y, por tanto, todas las calculadoras basadas en navegador) almacena los números en exactamente 64 bits. Esos 64 bits no pueden contener una cadena infinita de dígitos, por lo que el valor se redondea al número representable más cercano. El resultado redondeado no es exactamente 0.1; es:
0.1000000000000000055511151231257827021181583404541015625
Lo mismo ocurre con 0.2. Su representación binaria también es una fracción periódica infinita y, tras el redondeo, se convierte en:
0.200000000000000011102230246251565404236316680908203125
Qué ocurre cuando se suman esos dos valores redondeados
Cuando la calculadora suma esas dos representaciones imprecisas, los pequeños errores no se cancelan entre sí — se acumulan. La suma produce:
0.3000000000000000444089209850062616169452667236328125
Ese número, redondeado al valor flotante de 64 bits más cercano, se convierte en 0.30000000000000004. El 4 adicional en la decimoséptima posición decimal no es un error de redondeo de la calculadora — es el resultado matemáticamente correcto de sumar dos aproximaciones binarias imprecisas según el estándar IEEE 754. Todos los dispositivos, lenguajes y navegadores que siguen el mismo estándar producen la misma respuesta.

Por qué esta calculadora muestra 0.30000000000000004 en lugar de un resultado más limpio
La calculadora de arriba usa new Function() de JavaScript para evaluar tu expresión, lo que significa que depende directamente de la aritmética nativa de punto flotante de 64 bits del motor de JavaScript. No existe ninguna capa de redondeo oculta que limpie el resultado.
Internamente, el código sí redondea el resultado a 10 decimales para la mayoría de los números — Math.round(result * 1e10) / 1e10 — pero 0.30000000000000004 ya tiene su primer dígito inesperado en la posición decimoséptima, muy por encima de ese umbral de redondeo. Por eso el verdadero resultado de punto flotante pasa sin modificaciones.
Algunas calculadoras ocultan esto redondeando de forma agresiva a 12 o 13 cifras significativas antes de mostrar el resultado. Ese enfoque produce un 0.3 de aspecto más amigable, pero oculta precisión que un cálculo científico o financiero podría necesitar realmente. La compensación es real: más redondeo en la visualización significa menos resultados sorprendentes, pero también menos dígitos visibles.
¿Afecta esto a todos los cálculos decimales?
No — y ese es el matiz clave. Que aparezca un error depende de si el resultado puede representarse exactamente en binario de 64 bits. Algunas sumas resultan redondearse perfectamente:
- 0.1 + 0.4 = 0.5 — 0.5 es exactamente representable en binario (
0.1en base 2), por lo que los errores se cancelan y aparece el resultado exacto. - 0.25 + 0.25 = 0.5 — por la misma razón: ambos valores son potencias exactas de 2.
- 0.1 + 0.2 = 0.30000000000000004 — ni 0.1 ni 0.2 son exactamente representables, y su error combinado es lo suficientemente grande como para sobrevivir al redondeo de visualización.
El patrón no es "las calculadoras se equivocan con los decimales." Es más preciso que eso: las calculadoras son exactas con las fracciones binarias, y la mayoría de los decimales cotidianos no son fracciones binarias.
Qué hacer cuando la precisión importa
- Para aritmética cotidiana — el error se sitúa en la decimosexta o decimoséptima posición decimal y es completamente irrelevante para compras, cocina o presupuestos.
- Para cálculos financieros — trabaja en céntimos enteros en lugar de fracciones de unidad monetaria siempre que sea posible, o usa software de contabilidad especializado que aplique aritmética de punto fijo.
- Para ingeniería o ciencia — ten en cuenta el límite de precisión (aproximadamente 15–17 dígitos significativos para la doble precisión IEEE 754) y decide si es relevante para tu tolerancia de medición.
- Para confirmar una sospecha — resta el valor esperado:
0.1 + 0.2 - 0.3en la calculadora de arriba devuelve aproximadamente5.55e-17, el tamaño real del error.
Pruébalo: introduce0.1 + 0.2 - 0.3en la calculadora de arriba. El resultado no es cero — es aproximadamente5.55e-17, la diferencia exacta entre la aproximación almacenada y el valor real. Ese número diminuto es lo que representa el4adicional en 0.30000000000000004.