CFPV -- 浮動小数点値の比較(Comparing Floating-Point Values)
C++ 検査 への移動
説明
浮動小数点数が等しいかどうかの検査は避けなければなりません。 値が等しいはずの浮動小数点数でも、丸めの問題により、必ず等しくなるとは限りません。
誤った例
void calc(double limit) {
if (limit == 0.0) {
...
}
}
正しい例
const double EPS = 0.00001;
void calc(double limit) {
if (abs(limit) < EPS) {
...
}
}