首頁>Club>
13
回覆列表
  • 1 # 使用者2953413550839

    兩者的主要區別如下:

      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;(f或F都可以不區分大小寫)

    注意:float是8位有效數字,第7位數字將會四捨五入

    面試題:

      1.java中3*0.1==0.3將會返回什麼?true還是false?

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

      2.java中float f = 3.4;是否正確?

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

  • 中秋節和大豐收的關聯?
  • 10款價效比超高的便攜榨汁機推薦?