Jak uniknąć błędów zmiennoprzecinkowych?

Próbowałem napisać funkcję przybliżającą pierwiastki kwadratowe (wiem, że istnieje moduł matematyczny ... chcę to zrobić sam), a ja zostałem przekręcony przez arytmetykę zmiennoprzecinkową. Jak możesz tego uniknąć?

def sqrt(num):
    root = 0.0
    while root * root < num:
        root += 0.01
    return root

Użycie tego ma następujące wyniki:

>>> sqrt(4)
2.0000000000000013
>>> sqrt(9)
3.00999999999998

Zdaję sobie sprawę, że mogę po prostu użyćround(), ale chcę być w stanie uczynić to naprawdę dokładnym. Chcę móc obliczyć do 6 lub 7 cyfr. Nie byłoby to możliwe, jeśli zaokrąglałem. Chcę zrozumieć, jak poprawnie obsługiwać obliczenia zmiennoprzecinkowe w Pythonie.

questionAnswers(1)

yourAnswerToTheQuestion