CFPV – Vergleich von Gleitkommawerten

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu C++-Audits


Beschreibung

Vermeidet die Prüfung von Gleitkommazahlen auf Gleichheit. Wegen Rundungsfehlern sind Gleitkommazahlen, die den gleichen Wert haben sollten, nicht immer gleich.

Falsch:

 void calc(double limit) {
    if (limit == 0.0) {
        ...
    }
 }

Richtig:

 const double EPS = 0.00001;
 
 void calc(double limit) {
    if (abs(limit) < EPS) {
        ...
    }
 }

Siehe auch