| 

.NET C# Java Javascript Exception

3
Wie kodiere ich den folgenden Konstrukt, damit dieser korrekt ausgeführt wird. In der aktuellen Fassung wird keine Anweisung innerhalb des if-Blocks ausgeführt?

double wert = 0.00001;
if (wert*6== 0.00006) {

}
28.04.2012
cVz 11 1
1 Antwort
1
Das kommt auf deine Anforderungen an. Je nach erwünschter Genauigkeit und möglichem Wertebereich, könnte die einfachste Möglichkeit sein, einfach Zehntausendstel als int oder long zu speichern. Also:

long zehntausendstelWert = 1;
if( zehntausdstelWert * 6 = 6 ) {
//...
}


Mit anderen Worten: Wenn es möglich ist, das Rechnen mit Gleitzahlen zu vermeiden, sollte man dies in der Regel auch tun.

Falls dies nicht möglich ist, kannst du die Differenz der double Werte gegen ein Delta überprüfen. Welches Delta man da am Besten wählt, kommt wieder auf den Wertebereich an. Das sähe dann zum Beispiel so aus:

double wert = 0.00001;
if ( Math.abs(wert*6 - 0.00006) < 0.0000000001 ) {

}
28.04.2012
sepp2k 116 2

Stelle deine Java-Frage jetzt!