Fließkommazahlen Vergleich

Bitte aktiviere JavaScript!
Warum liefert folgender Code als Ausgabe
true
false
?

System.out.println( 20000000000F == 20000000000F+1 );

System.out.println( 20000000000D == 20000000000D+1 );


Als Tipp steht da: Was sind die Wertebereiche von float und double?
Der Wertebereich von float geht ja bis 3,4E38 und die Vergleichswerte betragen ja 2E10, was in beiden Fällen(float und double) doch in dem Wertebereich liegt, somit verstehe ich den Unterschied nicht.
 
A

Anzeige


Vielleicht hilft dir dieser Kurs hier weiter: (hier klicken)
Dass die größte darstellbare Zahl 3,4E38 ist, bedeutet nicht, dass jede beliebige Zahl bis 3,4E38 darstellbar wäre. Das ist schon nicht möglich, wenn Du Dir überlegst, dass sich mit 32-Bit nur 2^32 - also etwa 4,2E9 - verschiedene Zustände unterscheiden lassen.

Interessant sind in Deinem Fall nicht die Grenzen des Wertebereichs, sondern die Zahl signifikanter Stellen.
 
@vjung Um Dir adäquat zu antworten, müsste ich halt wissen ob Du Ingenieur, Geistes oder Naturwissenschaftler bist? aber da Du nicht mehr antwortest ist es wahrscheinlich einfach eine Troll-Frage.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben