Problemas con valores float sencillos
Publicado por Luis (15 intervenciones) el 12/10/2021 16:42:39
Tenemos estos tres valores:
x = 7.68
y = 7.775
z = 7.87
Ocurre que y-x = z-y = 0.095, pero Python se empeña en asignar los siguientes valores:
y-x = 0.09500000000000064
z-y = 0.09499999999999975
Es una diferencia insignificante, pero suficiente para devolver resultados erróneos, por ejemplo:
y-x == z-y devuelve False, lo cual no es cierto, la comparación debería devolver True (0.095 == 0.095)
El caso es que ese tipo de resultados me está tirando una rutina de comparación y la función me devuelve resultados erróneos por ello.
¿Cómo podría evitar esto, a ser posible sin utiizar módulos "externos" typo sympy?
x = 7.68
y = 7.775
z = 7.87
Ocurre que y-x = z-y = 0.095, pero Python se empeña en asignar los siguientes valores:
y-x = 0.09500000000000064
z-y = 0.09499999999999975
Es una diferencia insignificante, pero suficiente para devolver resultados erróneos, por ejemplo:
y-x == z-y devuelve False, lo cual no es cierto, la comparación debería devolver True (0.095 == 0.095)
El caso es que ese tipo de resultados me está tirando una rutina de comparación y la función me devuelve resultados erróneos por ello.
¿Cómo podría evitar esto, a ser posible sin utiizar módulos "externos" typo sympy?
Valora esta pregunta


0