CFPV – Vergleich von Gleitkommawerten
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) {
...
}
}