Earlier quoted context omitted.
what // FLT_EPSILON == 0.01 equal(4.999, 5); // true 4.999 == 5; // false am i missing?
FLT_EPSILON is not 0.01, it's 0.00000011920929. But it's impossible to have a number that's 0.00000011920929 less than 5.0, or 0.00000011920929 more than 5.0, because the floats with enough magnitude to represent 5 are spaced further apart than that. Only numbers with magnitude In other words, the only 32-bit float that's within ±0.00000011920929 of 5.0 is 5.0 itself.
Gotta research now where the 0.00000011920929 number comes from...