zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Was ist bei diesem float falsch?

1230.00089F

Antwort:

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.)

Genauigkeit von Double

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.

FRAGE 12:

Halten Sie es für möglich, dass Zeichen wichtig genug sind, um einer von den acht primitiven Datentypen zu sein?