c++ comparison of two double values not working properly [duplicate]
Comparing floating point values using the == operator is very error prone; two values that should be equal may not be due to arithmetic rounding errors. The common way to compare these is to use an epsilon: bool double_equals(double a, double b, double epsilon = 0.001) { return std::abs(a – b) < epsilon; }