¿Cómo evitar errores de punto flotante?
Estaba intentando escribir una función para aproximar las raíces cuadradas (sé que está el módulo matemático ... quiero hacerlo yo mismo), y la aritmética de punto flotante me estaba jodiendo. ¿Cómo puedes evitar eso?
def sqrt(num):
root = 0.0
while root * root < num:
root += 0.01
return root
Usando esto tiene estos resultados:
>>> sqrt(4)
2.0000000000000013
>>> sqrt(9)
3.00999999999998
Me doy cuenta de que solo podría usarround()
, pero quiero poder hacer esto realmente preciso. Quiero poder calcular hasta 6 o 7 dígitos. Eso no sería posible si estoy redondeando. Quiero entender cómo manejar correctamente los cálculos de punto flotante en Python.