Ich habe die beiden folgenden Berechnung mit Math.round (...):Warum unterscheiden sich die Ergebnisse der beiden Berechnungen?
double x = 0.57145732;
x = x * 100;
x = Math.round(x * 10);
x = x/10;
Wenn ich jetzt den Wert drucken x es mir zeigen wird: 57,1.
double x = 0.57145732;
x = (Math.round((x * 100) * 10))/10;
// x = (Math.round(x * 1000))/10; //Also gives me 57.0.
Wenn ich jetzt den Wert von x drucke, wird es mir anzeigen: 57.0.
Warum gibt es diesen Unterschied im Ergebnis?
Math.round gibt ein int oder long zurück. Dies beeinflusst die Berechnung geringfügig. Fließkommazahlen sind seltsam. – byxor
Weil Gleitkommazahlen, Rundungen und solche Dinge ... unter der Oberfläche komplizierter sind, als man normalerweise annimmt ?! Vor allem beim Mischen von ** double ** und ** float ** (wie es bei Math.round() der Fall ist). – GhostCat
@Bob Ich habe das gerade herausgefunden, haha. Danke, Kommentar bearbeiten. (Wie dumm von mir). – byxor