首頁 > Java > java教程 > 主體

Java Double比較範例

王林
發布: 2023-09-01 18:41:02
轉載
1542 人瀏覽過

Java Double比较示例

Double 是 Java 中可用的表示小數點數字的原始資料型別之一。它屬於浮點類型,也稱為實數,在計算需要小數值時使用。例如,要表示1/5即0.2的結果,正弦和餘弦的結果也需要小數點。除了小數值的表示之外,我們還可以進行兩個雙精度類型變數之間的比較操作。本文旨在藉助範例程式探索比較雙變量的可能方法。

比較 Java 中的雙精度數

在本節中,我們將解釋如何在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值。

使用compareTo()方法

它是'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
登入後複製

使用compare()方法

它是'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中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板