Was ist bei diesem float falsch?
1230.00089F
Es gibt neun Dezimalstellen für die Genauigkeit.
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 Bits 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 Dezimalstellen.
Darum wird, wenn Sie ein Literal wie 2.345 in einem Javaprogramm 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.