Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Gleitkommazahlen in Python genau vergleichen?
Gleitkommazahlen mit Präzision in Python vergleichen
Im Bereich der Programmierung stellt der Vergleich von Gleitkommazahlen auf Gleichheit eine Herausforderung dar. Wie Experten wie Bruce Dawson hervorheben, wird die Bestimmung der Gleichheit durch Rundungsfehler und Genauigkeitseinschränkungen erschwert.
Gibt es eine Lösung in Python?
Python bietet eine Vielzahl von Lösungen zu diesem Thema. Insbesondere führt Python 3.5 die Funktionen math.isclose und cmath.isclose gemäß der Anleitung von PEP 485 ein. Diese Funktionen bieten ein zuverlässiges Mittel zum Vergleich von Gleitkommazahlen auf ungefähre Gleichheit.
Implementierungsdetails:
import math # Compare two floating-point numbers for almost-equality result = math.isclose(0.1, 0.10000000000000001, rel_tol=1e-09, abs_tol=0.0)
Benutzerdefinierte Funktion für frühere Python-Versionen Versionen:
Für Python-Versionen vor 3.5 schlägt die Dokumentation die folgende benutzerdefinierte Funktion vor:
def isclose(a, b, rel_tol=1e-09, abs_tol=0.0): return abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)
Erklärte Parameter:
Die Verwendung entweder der Funktion math.isclose oder der benutzerdefinierten Funktion gewährleistet einen genauen Vergleich von Gleitkommazahlen für ungefähre Gleichheit, wobei die Herausforderungen angegangen werden, die sich aus Präzisionsproblemen ergeben.
Das obige ist der detaillierte Inhalt vonWie kann ich Gleitkommazahlen in Python genau vergleichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!