Gleitkommagleichheit: Wann und warum
Obwohl dies im Allgemeinen verpönt ist, gibt es Fälle, in denen Gleitkommavergleiche als akzeptabel angesehen werden können .
Exakte Darstellung ganzer Zahlen
IEEE 754, der Standard für Gleitkommaarithmetik, garantiert, dass ganze Zahlen (ganze Zahlen) innerhalb eines bestimmten Bereichs exakt dargestellt werden Gleitkommaformat. Dies bedeutet, dass Vergleiche mit ganzen Zahlen, einschließlich 0,0, mit dem Gleichheitsoperator (==) durchgeführt werden können.
Vorsichtsmaßnahmen bei berechneten Werten
Es ist jedoch Vorsicht geboten beim Arbeiten mit aus Berechnungen abgeleiteten Gleitkommawerten. Die Zuweisung einer ganzen Zahl an eine Gleitkommavariable ist sicher, aber die Ausführung arithmetischer Operationen an Gleitkommazahlen kann zu Rundungsfehlern führen. Daher sollten Gleichheitsvergleiche zwischen berechneten Werten vermieden werden.
Konstante Literale
Beim Vergleich einer Variablen mit einem konstanten Literal ist es wichtig sicherzustellen, dass das Literal als definiert ist eine Double-Konstante (z. B. 3,14L), um die Genauigkeit mit doppelter Genauigkeit aufrechtzuerhalten.
Beispiel
Im bereitgestellten Codeausschnitt ist die statische Konstante BAR als Double definiert . Wenn d auch ein Double ist, gibt der Vergleich d == BAR immer „true“ zurück, vorausgesetzt, dass sowohl d als auch BAR ganze Zahlen innerhalb des gültigen Bereichs für die Gleitkommadarstellung darstellen.
Das obige ist der detaillierte Inhalt vonWann ist Gleitkommagleichheit akzeptabel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!