Heim > Backend-Entwicklung > C++ > Hauptteil

Wann ist Gleitkommagleichheit akzeptabel?

Susan Sarandon
Freigeben: 2024-11-16 13:13:03
Original
202 Leute haben es durchsucht

When Is Floating-Point Equality Acceptable?

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!

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