Redondear, truncar, redondear hacia arriba y el problema de 0.1 + 0.2 — todo sobre las fracciones en una calculadora
Diferencias entre redondear, truncar y redondear hacia arriba, redondeo de importes, redondeo bancario, por qué en un ordenador 0.1 + 0.2 da 0.30000000000000004 y cómo lo trata esta calculadora.
Los cálculos de porcentajes incluyen muchas divisiones y multiplicaciones con decimales, así que casi nunca dan un resultado exacto. Incluso en el mismo cálculo, cómo se tratan las fracciones puede cambiar el resultado en unos céntimos; conocer las reglas te permite explicar las diferencias entre un recibo y un presupuesto.
Tres formas de tratar las fracciones
- Redondear: si la cifra que se descarta es 5 o más, se sube; si no, se descarta. 1234.5 → 1235
- Truncar (hacia abajo): se descartan todas las cifras sobrantes. 1234.9 → 1234
- Redondear hacia arriba: si la cifra que se descarta no es 0, se sube. 1234.1 → 1235
También se puede cambiar la unidad. 12 345 truncado a múltiplos de 10 da 12 340, y redondeado a múltiplos de 100 da 12 300.
Qué se usa en cada caso
- Cuota del IVA: en Corea del Sur es práctica habitual truncar las fracciones inferiores a 1 won
- Pago de impuestos nacionales: en Corea del Sur, según el artículo 47 de la Ley de Gestión de Fondos del Tesoro Nacional, no se computan las fracciones inferiores a 10 wones
- Precios rebajados en tiendas: depende de cada tienda, pero es frecuente truncar el importe del descuento a múltiplos de 10 o de 100
- Publicación de estadísticas y porcentajes: lo habitual es redondear a uno o dos decimales
- Cantidades necesarias (cajas, personas): como no puede faltar, se redondea hacia arriba
Fracciones de números negativos
¿Redondear −2.5 da −3 o −2? Esta calculadora redondea alejándose de 0, así que da −3. Truncar va hacia 0 (−1.239 → −1.23) y redondear hacia arriba se aleja de 0. Es decir, se aplica la misma regla a la magnitud (valor absoluto) sin importar el signo del importe.
Redondeo bancario
Cuando el valor está exactamente en la mitad (…5), se lleva al número par más cercano (2.5 → 2, 3.5 → 4). Algunos entornos contables y de programación lo usan para reducir el sesgo que se acumula al redondear muchísimas veces. Los cálculos cotidianos y esta calculadora usan el redondeo normal.
Por qué en un ordenador 0.1 + 0.2 da 0.30000000000000004
Los ordenadores guardan los números en binario. Igual que 1/3 en decimal es 0.333… sin fin, 0.1 en binario es un decimal infinito, así que no se puede guardar con exactitud y se almacena redondeado a un valor muy cercano. Por eso, en la mayoría de los lenguajes, JavaScript incluido, 0.1 + 0.2 da 0.30000000000000004.
Por la misma razón, el método habitual para redondear 1.005 a dos decimales (toFixed(2)) devuelve 1.00 en lugar de 1.01, porque 1.005 se guarda en realidad como 1.00499999….
Cómo lo trata esta calculadora
- Todos los resultados intermedios se ajustan a 12 cifras significativas para eliminar el ruido de la representación binaria. 0.1 + 0.2 → 0.3
- El redondeo no multiplica el número, sino que desplaza las cifras mediante notación exponencial decimal. 1.005 → 1.01, 2.675 → 2.68
- Para los importes, en las pestañas de descuento e IVA puedes elegir la unidad (1, 10, 100, etc.) y el método (truncar, redondear, hacia arriba).
- Este método se ha verificado con pruebas unitarias en node en valores límite (1.005, −2.5, valores muy pequeños y muy grandes).
Decimales mostrados y valor real
El ajuste Decimales de la parte superior solo cambia cuántos decimales se muestran. 1 ÷ 3 × 100 es internamente 33.3333333333 y, con 2 decimales, se muestra como 33.33. El botón Copiar copia el valor que aparece en pantalla.
Resumen
Que el resultado varíe unos céntimos por usar reglas de redondeo distintas no es un error, sino una diferencia de reglas. Cuando un importe no cuadre, comprueba primero ① en qué paso se trataron las fracciones y ② qué unidad y qué método se usaron.