Wie zu vermeiden, floating-point-Fehler?

War ich zu schreiben versucht, eine Funktion zu approximieren, die Quadrat-Wurzeln (ich weiß, es gibt die Mathematik-Modul...ich will es selbst zu tun), und ich war immer über geschraubt durch die floating point Arithmetik. Wie kann man das vermeiden?

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

Mit dieser hat diese Ergebnisse:

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

Merke ich, ich konnte einfach round(), aber ich möchte in der Lage sein, um diese wirklich genau. Ich möchte in der Lage sein, zu berechnen, aus bis zu 6 oder 7 Ziffern. Das wäre nicht möglich, wenn ich die Rundung. Ich will verstehen, wie die richtig zu handhaben, floating-point-Berechnungen in Python.

  • Vielleicht versuchen Sie den decimal - Modul, das für die Präzision?
Schreibe einen Kommentar