Wie vergleicht Python, ob zwei Gleitkommazahlen gleich sind?
Verwandte Empfehlungen: „Python-Video“
float Der Typ kann nicht gleich oder ungleich sein, aber Sie können >, <, >=, <=
vergleichen. Die Verwendung von == ist grammatikalisch korrekt, aber zwei Gleitkommazahlen, die gleich sein sollten, sind darauf zurückzuführen Die angegebenen Gründe können geringfügige Fehler aufweisen. In diesem Fall wird == verwendet, um anzunehmen, dass sie nicht gleich sind. Sie sollten den absoluten Wert der Differenz zwischen zwei Gleitkommazahlen verwenden, der kleiner als ein akzeptabler Wert ist, um zu bestimmen, ob sie gleich sind. Verwenden Sie beispielsweise
if (fabs(price - p) < 0.000001)
anstelle von
if (price == p)
Viele technische Anwendungen verwenden die Methode zur Berechnung der Genauigkeit
Definieren Sie eine Genauigkeit und vergleichen Sie sie mit dem Absolutwert der Differenz. Sie gilt als gleich innerhalb des Genauigkeitsbereichs;
Gleitkommavariablen können nicht mit Zahlen verglichen werden, die „==" oder „!=" verwenden.
Beachten Sie unbedingt, dass Variablen vom Typ Float oder Double Genauigkeitsgrenzen haben. Vermeiden Sie daher
den Vergleich von Gleitkommavariablen mit Zahlen mithilfe von „==" oder „!=" und versuchen Sie, sie in die Formen „>=" oder „<=" umzuwandeln.
Angenommen, der Name der Gleitkommavariablen ist Fehler (d. h. Genauigkeit).
Die Computerdarstellung von Gleitkommazahlen (Float- oder Double-Typ) hat eine Genauigkeitsgrenze. Bei Gleitkommazahlen, die die Genauigkeitsgrenze überschreiten, schneidet der Computer den Dezimalteil über ihre Genauigkeit hinaus ab. Daher können zwei ursprünglich ungleiche Gleitkommazahlen im Computer gleich werden. Zum Beispiel:
if ((x>=-EPSINON) && (x<=EPSINON))
Mathematisch gesehen sind a und b nicht gleich, aber in einem 32-Bit-Computer sind sie gleich.
float a=10.222222225,b=10.222222229
Das obige ist der detaillierte Inhalt vonPython-Methode zum Vergleichen, ob zwei Gleitkommazahlen gleich sind. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!