float和double的區別


float和double 有什么區別,使用時注意什么

float : 單精度浮點數

 

double : 雙精度浮點數

 

兩者的主要區別如下:

 

  01.在內存中占有的字節數不同

 

    單精度浮點數在機內存占4個字節

 

    雙精度浮點數在機內存占8個字節

 

  02.有效數字位數不同

 

    單精度浮點數有效數字8

 

    雙精度浮點數有效數字16

 

  03.數值取值范圍

 

    單精度浮點數的表示范圍:-3.40E+38~3.40E+38

 

    雙精度浮點數的表示范圍:-1.79E+308~-1.79E+308

 

  04.在程序中處理速度不同

 

    一般來說,CPU處理單精度浮點數的速度比處理雙精度浮點數快

 

如果不聲明,默認小數為double類型,所以如果要用float的話,必須進行強轉

 

  例如:float  a=1.3; 會編譯報錯,正確的寫法 float a = (float)1.3;或者float a = 1.3f;fF都可以不區分大小寫)

 

注意:float8位有效數字,第7位數字將會四舍五入

 

面試題:

 

  1.java3*0.1==0.3將會返回什么?true還是false

 

   fale,因為浮點數不能完全精確的表示出來,一般會損失精度。

 

  2.javafloat f = 3.4;是否正確?

 

     不正確,3.4是雙精度數,將雙精度型(double)賦值給浮點型(float)屬於向下轉型會造  成精度損失,因此需要強制類型轉換float f = (float)3.4;或者寫成 float f = 3.4f;才可以。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM