Hallo zusammen,
im Buch gibt es folgendes Beispiel:
Damit soll gezeigt werden das es Probleme mit der Rundung gibt wenn man bei Fließkommazahlen einen absoluten Vergleich benötigt. Das ist soweit klar. Als eine möglichen Lösung gibt es:
Was ist denn ein Absolutwert? Ich erkenne den Sinn der Funktion nicht so ganz. Wie kann ich die Funktion in das erste Code-Beispiel einbauen damit die Schleife nicht über die 1.0 hinaus läuft?
Viele Grüße
pixel
im Buch gibt es folgendes Beispiel:
Code:
double d = 0.0;
while ( d != 1.0 )
{
d += 0.1;
System.out.println( d );
}
Eine zweite Möglichkeit neben dem echten Kleiner/Größer-Vergleich ist, eine erlaubte Abweichung zu definieren. Mathematiker bezeichnen die Abweichung von zwei Werten mit dem griechischen Kleinbuchstaben Epsilon. Wenn wir einen Vergleich von zwei Fließkommazahlen anstreben und bei einem Gleichheitsvergleich die Abweichung mit betrachten wollen, so schreiben wir einfach:
Code:
if ( Math.abs(a - b) <= epsilon )
...
Epsilon ist die erlaubte Abweichung. Math.abs(x) berechnet von einer Zahl x den Absolutwert.
Was ist denn ein Absolutwert? Ich erkenne den Sinn der Funktion nicht so ganz. Wie kann ich die Funktion in das erste Code-Beispiel einbauen damit die Schleife nicht über die 1.0 hinaus läuft?
Viele Grüße
pixel