Am 25.08.2012 10:36, schrieb Jonathan M Davis:
On Saturday, August 25, 2012 10:28:44 nocide wrote:
unittest {
bool fuzzyCmp(float a, float b) {
return abs(a-b) < 0.000001f;
}
float len1 = sqrt(8.0f);
float len2 = sqrt(8.0f);
assert(len1 == len2); // passes
assert(fuzzyCmp(len1,sqrt(8.0f))); // passes
assert(len1 == sqrt(8.0f)); // fails!!
}
The comparison of the float variable passes, but the comparison to the
return value of the sqrt-function fails.?!
Comparing floating point numbers with == is almost always the wrong thing to
do.
http://floating-point-gui.de/
- Jonathan M Davis
Many thanks!
nocide