double werte vergleichen
-
hallo
gibt es eine funktion mit der man double werte vergleichen kann. Ein normales == kann problematisch sein.
-
Definiere gleich.
Vllt. reicht Dir aber schon ein mal 100 und das jeweils als int vergleichen !?
-
Wenn dir ein "fast gleich" ausreicht, kannst du auch die Differenz der Werte bilden und mit einer Fehlerschranke vergleichen:
if(fabs(x-y)<epsilon) cout<<"Werte sind gleich";
-
hallo,
ja an das dachte ich auch. z.b. den double wert mal 1000000 und dann als int vergleichen. In delphi gibt es eine funktion bei der man angeben kann bis zur wievielten stellen der double wert auf gleichheit überprüft werden soll. Falls es dies in c/c++ nicht gibt werde ich es so machen wie du geschrieben hast.
-
Die Variante von CStoll gefällt mir aber besser, wird deutlich weniger Rechenzeit verbraten

-
Geht das nicht so irgendwie?
if( std::abs(x-y) < (std::max(std::abs(x), std::abs(y)) + 1) * epsilon ) { // "gleich", hurrah }