Hi Leutz, ich programmiere gerade einiges in Java ... und bin dabei auf etwas wirklich komisches gestoßen. Ich habe ein kleines Java Programm mit nur einer Mainmethode ... public static void main (String [] args) { for (double x = 0.0; x < 1; x = x + 0.1) { System.out.print(x+" "); } System.out.print("\n"); for (float x = 0.0f; x < 1; x = x + 0.1f) { System.out.print(x+" "); } System.out.print("\n"); } } Das ganze sollte eigentlich so etwas wie 0.0 0.1 ... 0.9 erzeugen. Und zwar zweimal. In der Realität sieht das ganze schon anders aus, da bekomme ich : 0.0 0.1 0.2 0.30000000000000004 0.4 0.5 0.6 0.7 0.799999999999999 0.8999999999999999 0.9999999999999999 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.70000005 0.8000001 0.9000001 ?!?!? Hä, wie kann das denn sein? Habe ich hier nen Bug in Java oder bei mir gefunden ? Liegt jedenfalls nicht am Betriebssystem(Linux, Solaris oder Win) oder der Java-Version(1.1.8, 1.2.2, 1.3.1, 1.4.0 alle von SUN). Kann sich das von Euch einer erklären ? Danke Jan --- Dipl.-Inf. Jan Krueger Lehrstuhl für Informatik VI - Prof. A. Knoll Robotics and Embedded Systems Orleanstr.34 # D-81667 Muenchen (089)48095-276
Teilnehmer (5)
-
Andre Landwehr
-
Andreas Koch
-
jan.krueger@in.tum.de
-
Joern Muehlencord
-
Sascha Effert