Heim > Backend-Entwicklung > Python-Tutorial > Wie vergleiche ich Gleitkommazahlen auf nahezu Gleichheit in Python?

Wie vergleiche ich Gleitkommazahlen auf nahezu Gleichheit in Python?

Linda Hamilton
Freigeben: 2024-12-19 06:55:09
Original
764 Leute haben es durchsucht

How to Compare Floating-Point Numbers for Near-Equality in Python?

Gleitkomma-Vergleich mit nahezu Gleichheit in Python

Der Vergleich von Gleitkommazahlen auf Gleichheit in Python kann aufgrund von Präzisionsproblemen eine Herausforderung darstellen und Rundungsfehler. Um dieses Problem anzugehen, ist es wichtig, Techniken einzusetzen, die einen aussagekräftigen Vergleich ermöglichen.

Ein Ansatz besteht darin, die in Python 3.5 eingeführte Standardbibliotheksfunktion zu verwenden:

import math
math.isclose(a, b, rel_tol=1e-09, abs_tol=0.0)
Nach dem Login kopieren

Das rel_tol Der Parameter gibt eine relative Toleranz an, bei der es sich um einen Multiplikator handelt, der auf die größere der beiden verglichenen Zahlen angewendet wird. abs_tol stellt eine absolute Toleranz dar, die direkt auf die Differenz zwischen den Zahlen angewendet wird.

Wenn die Differenz zwischen a und b kleiner ist als einer der beiden Bei relativer oder absoluter Toleranz gelten die beiden Zahlen als nahezu gleich und die Funktion gibt True zurück. Andernfalls wird False zurückgegeben.

Für Python-Versionen vor 3.5 kann eine entsprechende Funktion wie folgt definiert werden:

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

Das obige ist der detaillierte Inhalt vonWie vergleiche ich Gleitkommazahlen auf nahezu Gleichheit in Python?. 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