Java 中的浮點數和 Double 資料型別

Rupam Yadav 2023年10月12日
Java 中的浮點數和 Double 資料型別

Float 和 double 資料型別用於在 Java 中儲存實數或浮點數,但 double 資料型別比 float 更精確。double 是浮點數的預設資料型別。

精確儲存浮點數

float 是 32 位 IEEE 754 浮點,而 double 是 64 位 IEEE 754 浮點。與 double 相比,Float 的範圍較小。

在下面給出的示例中,我們有 double 資料型別的 d,它是通過將兩個 double 變數 d1d2 相除而獲得的。類似地,當兩個 float 變數 f1f2 相除時,我們有 f1 結果。在 double 的情況下,不需要使用字尾 dD,而對於 float 型別的資料,我們需要使用字尾 fF 作為預設值,所有實數數字在 Java 中被視為雙精度

在輸出中,我們可以看到 double 變數 d 的精度和準確度高於 float 變數 f。我們知道 double 是比 float 更大的資料型別,所以我們需要向下轉換它。要將 double 型別轉換為 float,我們需要在十進位制值之前的方括號中提及 float 關鍵字。

在輸出中可以看出,通過將 double 變數轉換為 float 會丟失資料和精度,因為我們將較大的資料型別儲存到較小的資料型別中。因此,double 需要更多的記憶體來儲存雙精度浮點數並給出準確的結果。

public class Test {
  public static void main(String args[]) {
    double d1 = 10.0;
    double d2 = 3.0;
    double d = d1 / d2;
    System.out.println("double d : " + d);

    float f1 = 10.0f;
    float f2 = 3.0f;
    float f = f1 / f2;
    System.out.println("float f : " + f);

    float f3 = (float) d;
    System.out.println("float f3 : " + f3);

    double d3 = f;
    System.out.println("double d3 : " + d3);
  }
}

輸出:

double d : 3.3333333333333335
float f : 3.3333333
float f3 : 3.3333333
double d3 : 3.3333332538604736

兩種資料型別之間的差異可以用給定的表格資料來說明。

資料型別 精度 大小 Default 資料型別 預設值 字尾 包裝類 資料丟失 關鍵詞
float 單精度(6-7 位十進位制數字) 32 位 0.0f 使用 f 或 F。我們需要新增這個字尾,因為預設情況下浮點數顯式被視為雙精度 java.lang.Float 將 float 轉換為 double 時不會丟失資料 關鍵字 float 用於浮點型別
double 雙精度(15-16 位十進位制數字) 64 位 0.0d 使用 d 或 D。可選擇使用字尾 java.lang.Double 將 double 轉換為 float 時資料丟失 關鍵字 double 用於定義雙精度數

Float 和 double 用於表示實數。兩種資料型別都不精確;它們是近似型別。當我們需要準確而精確的結果時,我們應該選擇雙倍。如果有任何記憶體和空間限制,則應考慮浮點數。

作者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

相關文章 - Java Double

相關文章 - Java Float