Espacio publicitario (banner)
AD

¿Ya dominas lo básico? Un curso estructurado de Python es la vía rápida para dar el salto.

Ver cursos de Python en Udemy

Enlace de afiliado. No te cuesta nada extra.

🐍Lecciones de Python
Lección 58 / 69

Cuidado con los errores de redondeo en coma flotante

En esta lección verás los errores de redondeo que aparecen cuando un ordenador maneja decimales, para saber dónde hay que tener cuidado en los cálculos de importes. Está pensada para quien busca «error de 0.1 + 0.2 en Python».

Como los ordenadores representan los decimales en binario, incluso un cálculo tan simple como 0.1 + 0.2 puede salir ligeramente distinto de 0.3 exacto. Si lo muestras, verás el error directamente; si lo comparas, da False. Esto no es exclusivo de Python: es una consecuencia de cómo funcionan los ordenadores en general, compartida por muchos lenguajes.

El código de ejemplo muestra que ejecutar 0.1 + 0.2 produce el valor con error 0.30000000000000004, y que comparar 0.1 + 0.2 == 0.3 da False. Es una de las primeras sorpresas con las que se topa mucha gente al empezar, y una experiencia reveladora que derriba la suposición de que «la aritmética de un ordenador siempre es exacta».

Cuando el error en coma flotante es un problema real, como en cálculos de importes, necesitas una alternativa: usar el módulo decimal, por ejemplo. También existe la función math.isclose(), que da por hecho ese error y compara «¿están suficientemente cerca?» en lugar de «¿son exactamente iguales?».

En sistemas contables y en el cálculo de precios de una tienda online, este tipo de error puede producir descuadres inesperados, así que el código real suele usar una biblioteca específica o aritmética basada en enteros. Tener en cuenta esta característica es imprescindible.

Python
SALIDA

💡 El motor de Python puede tardar unos segundos en cargarse la primera vez que ejecutas código.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)