float和double的區(qū)別是什么?威哥講java原創(chuàng)系列?章
1.1 內(nèi)存中占有的字節(jié)數(shù)不同
單精度浮點(diǎn)數(shù)在內(nèi)存中占有4個(gè)字節(jié);
雙精度浮點(diǎn)數(shù)在內(nèi)存中占有8個(gè)字節(jié);
1.2 有效數(shù)字位數(shù)不同
單精度浮點(diǎn)數(shù)有效數(shù)字8位;
雙精度浮點(diǎn)數(shù)有效數(shù)字16位;
1.3 數(shù)值取值范圍不同
單精度浮點(diǎn)數(shù)的表示范圍:-3.40E+38~3.40E+38
雙精度浮點(diǎn)數(shù)的表示范圍:-1.79E+308~-1.79E+308
1.4 在程序中處理速度不同
?般來(lái)說(shuō),CPU處理單精度浮點(diǎn)數(shù)的速度?雙精度浮點(diǎn)數(shù)的速度快;
如果不聲明,默認(rèn)?數(shù)是double類型,如果想?float,要進(jìn)?強(qiáng)轉(zhuǎn)。
1. 舉例
float f = 1.3;會(huì)編譯報(bào)錯(cuò),正確的寫法是float f = (float)1.3;或者float a = 1.3f;(f或F都可以不區(qū)分??寫)
1. 注意
float是?位有效數(shù)字,第七位會(huì)四舍五?。