Was ist bei diesem float
falsch?
1230.00089F
Es werden neun Stellen für die Genauigkeit benötigt.
Der Datentyp float
kann das nicht handhaben.
(Der Compiler wird die Zahl in einen Wert runden, der
für ein float
passt.)
Sie könnten einwenden wollen, dass in der oben stehenden Zahl nur fünf Stellen verwendet werden: die Stellen, die von den Ziffern 1, 2, 3, 8, und 9 verwendet werden. Leider zählen die vier Nullen in der Mitte mit. Es braucht Bits, um sie darzustellen, selbst wenn es Nullen sind.
Der primitive Datentyp double
verwendet 64 Bit und hat einen wesentlich größeren Wertebereich, -1.7E+308 bis +1.7E+308. Er hat außerdem eine deutlich höhere Genauigkeit: ca. 17 signifikante Stellen.
Darum wird, wenn Sie ein Literal wie 2.345 in einem Java Programm schreiben,
es automatisch als ein double
betrachtet,
auch wenn ein float
ausreichen würde.
Es könnte sein, dass die anderen Zahlen im Programm double
sein müssen,
also können wir genauso gut alle zu double
machen.