Java 中的浮點數和 Double 資料型別
Float 和 double 資料型別用於在 Java 中儲存實數或浮點數,但 double 資料型別比 float 更精確。double
是浮點數的預設資料型別。
精確儲存浮點數
float
是 32 位 IEEE 754 浮點,而 double 是 64 位 IEEE 754 浮點。與 double 相比,Float
的範圍較小。
在下面給出的示例中,我們有 double
資料型別的 d
,它是通過將兩個 double
變數 d1
和 d2
相除而獲得的。類似地,當兩個 float
變數 f1
和 f2
相除時,我們有 f1
結果。在 double
的情況下,不需要使用字尾 d
或 D
,而對於 float
型別的資料,我們需要使用字尾 f
或 F
作為預設值,所有實數數字在 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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn