Я пытался написать функцию для аппроксимации квадратных корней (я знаю, что там математический модуль... Я хочу сделать это сам), и я накручивался арифметикой с плавающей запятой. Как вы можете избежать этого?
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.