Как избежать ошибок с плавающей запятой?
Я пытался написать функцию для аппроксимации квадратных корней (я знаю, что есть математический модуль ... Я хочу сделать это сам), и меня облажала арифметика с плавающей запятой. Как вы можете избежать этого?
def sqrt(num):
root = 0.0
while root * root < num:
root += 0.01
return root
Использование этого имеет следующие результаты:
>>> sqrt(4)
2.0000000000000013
>>> sqrt(9)
3.00999999999998
Я понимаю, что могу просто использоватьround()
, но я хочу быть в состоянии сделать это действительно точным. Я хочу быть в состоянии рассчитать до 6 или 7 цифр. Это было бы невозможно, если бы я округлил. Я хочу понять, как правильно обрабатывать вычисления с плавающей точкой в Python.