Double 是 Java 中可用的表示小數點數字的原始資料型別之一。它屬於浮點類型,也稱為實數,在計算需要小數值時使用。例如,要表示1/5即0.2的結果,正弦和餘弦的結果也需要小數點。除了小數值的表示之外,我們還可以進行兩個雙精度類型變數之間的比較操作。本文旨在藉助範例程式探索比較雙變量的可能方法。
在本節中,我們將解釋如何在Java中比較Doubles。我們可以使用以下方法 -
使用 == 運算子
使用compareTo()方法
#使用compare()方法
#讓我們透過範例程式一一討論它們。
「==」運算子是 Java 中可用的關係運算子之一。它用於比較兩種資料類型的值。更準確地說,它執行相等測試意味著它檢查給定值是否相等,如果兩個值相等則傳回 true,否則傳回 false。
但是,由於舍入錯誤,許多 Java 開發人員不建議使用相等運算子。舍入誤差非常常見,當我們使用浮點數時就會發生舍入誤差。因此,當我們使用“==”運算子來比較雙精確度值時,可能會得到錯誤的結果。
#在這個例子中,我們將使用'=='運算子來比較兩個雙精確度值。
public class Demo { public static void main(String[] args) { double data1 = 0.30; double data2 = 0.20 + 0.10; System.out.println("Value after addition: " + data2); // checking equality of first operation System.out.println(data1 == data2); double data3 = 0.50; double data4 = 0.10 + 0.10 + 0.10 + 0.10 + 0.10; System.out.println("Value after addition: " + data4); // checking equality of second operation System.out.println(data3 == data4); } }
Value after addition: 0.30000000000000004 false Value after addition: 0.5 true
在上面的程式碼中,我們在進行第一次加法運算時,'data2'的預期值為0.30,但是輸出結果是錯誤的。但是,當我們進行另一個類似的加法運算時,我們得到了準確的結果,並且通過了相等性測試。因此,不建議使用'=='運算子來比較兩個double值。
它是'java.lang.Double'類別的一種方法,可用於比較兩個Double值。當第一個物件等於傳遞的物件時,它會傳回0,如果第一個物件大於傳遞的對象,則傳回正值,否則傳回負值。
firstObject.compareTo(secondObject);
#在下面的範例中,我們將初始化兩個 Double 變數並使用compareTo() 方法對它們進行比較。
import java.lang.*; public class Demo { public static void main(String args[]) { // declaring and initializing two double variable Double d1 = Double.valueOf(395.24); Double d2 = Double.valueOf(323.30); // comparing and storing the result to an int variable int res = d1.compareTo(d2); if(res > 0) { System.out.println("d1 is greater than d2"); } else if(res < 0) { System.out.println("d1 is less than d2"); } else { System.out.println("d1 is equal to d2"); } } }
d1 is greater than d2
它是'java.lang.Double'類別的靜態方法。它的運作方式與compareTo()方法類似。
#以下範例使用compare()方法檢查兩個Double值是否相等。
import java.lang.*; public class Demo { public static void main(String args[]) { // declaring and initializing two double variable Double d1 = Double.valueOf("195.24"); Double d2 = Double.valueOf("323.30"); int res = Double.compare(d1, d2); // comparing and storing the result to an int variable if(res > 0) { System.out.println("d1 is greater than d2"); } else if(res < 0) { System.out.println("d1 is less than d2"); } else { System.out.println("d1 is equal to d2"); } } }
d1 is less than d2
我們已經討論了借助程式比較 Double 值的三種方法。盡量避免第一種方法,即使用「==」運算子來比較雙精確度值,因為它可能會因捨入誤差而導致錯誤的結果。另外兩個名為compare()和compareTo()的內建方法將為我們提供準確的結果。
以上是Java Double比較範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!