Как избежать ошибок с плавающей запятой?

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

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.

Ответы на вопрос(1)

Ваш ответ на вопрос