Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich Gleitkommazahlen in Python genau vergleichen?

Wie kann ich Gleitkommazahlen in Python genau vergleichen?

Susan Sarandon
Freigeben: 2024-12-26 19:39:18
Original
566 Leute haben es durchsucht

How Can I Accurately Compare Floating-Point Numbers in Python?

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

Erklärte Parameter:

  • rel_tol: Definiert die relative Toleranz und passt die akzeptable Differenz basierend auf der Größe der Werte an verglichen.
  • abs_tol: Gibt eine absolute Toleranz an, die einen direkten Vergleich ermöglicht, ohne die Größe der Zahlen zu berücksichtigen.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage