vergleich zwischen double-werten?
-
Hallo,
wie vergleicht man denn 2 double-werte? Ich würde gerne sowas schreiben:
double val = 0.0; if (val == 0.0) ....aber ich glaube das ist doch wegen der darstellung von zahlen im rechner unsauber oder?
Macht man es vielleicht so:?
double eps = 1e-300; if (abs(val) < eps) ....danke euch

-
Ja, am besten nimmt man da ein Epsilon. Aber deines ist schon seeehr klein^^
-
je nach anforderung ist nen wesentlich größeres epsilon angemessen. meisst reicht sogar nen epsilon in der gegend von 1e-4
-
Und das Epsilon sollte eine Konstante sein.
-
#include <limits> std::numeric_limits<double>::epsilonIn der STL gibt es das Epsilon bereits definiert.
-
double d = 1.0, c = 1.00000000000000000001; if(fabs(c - d) < std::numeric_limits<double>::epsilon()){}so in der Art dann, und natürlich mit "()"