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