Al la demando: Kio ne estas en ordo en la suba konstanto, por
kiu oni postulas la tipon float
?
1230.00089F
Ĝi havas naŭ dekumajn ciferojn de precizo. Datumtipo float
ne povas trakti
ĝin. La tradukilo rondigos la nombron al valoro kiu taŭgas por float
.
Vi povus argumenti, ke oni uzas nur kvin poziciojn en la supra nombro: tiuj de la ciferoj 1, 2, 3, 8 kaj 9. Bedaŭrinde, la kvar nuloj en la mezo nepre gravas. Ilia prezento postulas bitojn, eĉ se temas pri nuloj.
La primitiva datumtipo double
(duobla) uzas 64
bitojn kaj ĝia amplekso estas multe pli granda: el -1.7E+308
ĝis +1.7E+308. Ĝi havas ankaŭ multe pli grandan precizon: proksimume
15 signifikajn dekumajn ciferojn.
Pro tio, kiam vi skribas literalon kiel 2.345 en Java-programo, la tradukilo
aŭtomate konsideros ĝin kiel double
, eĉ se float
sufiĉus. Do, kiam vi traktas glitpunktajn nombrojn,
uzu prefere variablojn de tipo double
.