Java 中的雙精度
本教程介紹了 double 及其在 Java 中的用法。
Double 是 Java 中用於儲存浮點值的資料型別。Java 提供了一組豐富的資料型別,如 int、float、double、boolean 等。int 資料型別儲存整數值,如 -1
、2
、-3
和 4
。
int 資料型別可以儲存介於 -2,147,483,648 (-231) 到 2,147,483,647 (231-1) 之間的值。它不能儲存諸如 1.5
和 2.88
之類的小數值。第二個原始引數稱為 float 可以儲存小數值。
Java 有另一種原始資料型別來儲存小數值,稱為 double。本教程將討論 double 以及 double 和 Double 之間的區別。
Double 是 Java 中的原始資料型別,而 Double
是可以建立雙精度物件值的包裝類。讓我們通過一些例子來理解。
Java 中的雙精度 VS 浮點型別
- double 的範圍比 Java 中的 float 型別更大。
- 這是因為 double 佔用 8 個位元組,而 float 只佔用 4 個位元組。
- 雙精度資料型別比浮點資料型別慢。
- 雙精度資料型別比浮點資料型別具有更高的精度。
- double 可以精確到大約 15 位,而 float 可以只有 6 到 7 位的精度。
Java 中的原始 Double 型別
在這個例子中,我們建立了一個 double 型別的變數 d,它儲存一個浮點值。
看,由於雙重型別,此程式碼工作正常。我們不能使用 int 型別儲存這些值。這就是我們在 Java 中宣告雙精度型別的方式。
請參見下面的示例。
public class SimpleTesting {
public static void main(String args[]) {
double d = 34354.232;
System.out.println("d = " + d);
}
}
輸出:
d = 34354.232
在 Java 中新增兩個雙精度值
現在讓我們計算兩個雙精度值的總和。
為此,我們建立了三個雙精度變數並將結果儲存到雙精度變數中。如果我們將結果儲存為 int 型別,由於記憶體有限,結果將被截斷。
看看下面的程式碼。
public class SimpleTesting {
public static void main(String args[]) {
double d1 = 34354.232;
double d2 = 4333.32313;
double sum = d1 + d2;
System.out.println("sum = " + sum);
}
}
輸出:
sum = 38687.55513
Java 中的 double
包裝類
就像 int 有 Integer 一樣,float 有 Float
就像 double 有 Double
類來建立原始雙精度值的物件。換句話說,Double
是 double 資料型別的包裝類。
Double 類的語法是:
public final class Double extends Number implements Comparable<Double>
將 double 資料型別包裝到 Double 包裝器類中允許我們使用各種內建方法。讓我們通過程式碼示例來理解。
在 Java 中建立雙物件
讓我們首先建立一個示例來建立一個 Double
物件。看看下面的程式碼。
public class SimpleTesting {
public static void main(String args[]) {
Double d1 = 34354.232;
System.out.println(d1);
}
}
輸出:
34354.232
在 Java 中使用 sum()
方法新增兩個雙精度值
Java Double 類提供了幾種對浮點值執行的內建方法。Java 在 Java 8 版本中新增了一個 sum()
方法來獲得兩個浮點值的相加。
在這裡,我們使用了這種方法,並看到了下面的程式碼。
public class SimpleTesting {
public static void main(String args[]) {
Double d1 = 34354.232;
Double d2 = 4333.32313;
Double sum = Double.sum(d1, d2);
System.out.println(sum);
}
}
輸出:
38687.55513
まとめ
在本教程中,我們瞭解了 Java 中 double 的含義。然後我們瞭解了 double 和 float 之間的區別。我們還了解了 Double 包裝器類及其方法。