OT : Java
jan.krueger at in.tum.de
jan.krueger at in.tum.de
Tue Apr 23 15:26:03 CEST 2002
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
More information about the Linux
mailing list