How to correctly and standardly compare floats?

Posted by DIMEDROLL on Stack Overflow See other posts from Stack Overflow or by DIMEDROLL
Published on 2010-12-28T17:38:13Z Indexed on 2010/12/28 19:54 UTC
Read the original article Hit count: 208

Every time I start a new project and when I need to compare some float or double variables I write the code like this one:

if (fabs(prev.min[i] - cur->min[i]) < 0.000001 &&
    fabs(prev.max[i] - cur->max[i]) < 0.000001) {
        continue;
}

Then I want to get rid of these magic variables 0.000001(and 0.00000000001 for double) and fabs, so I write an inline function and some defines:

#define FLOAT_TOL 0.000001

So I wonder if there is any standard way of doing this? May be some standard header file? It would be also nice to have float and double limits(min and max values)

© Stack Overflow or respective owner

Related posts about c++

Related posts about float