Heim > Java > javaLernprogramm > Hauptteil

Beispiel für einen Java-Double-Vergleich

王林
Freigeben: 2023-09-01 18:41:02
nach vorne
1539 Leute haben es durchsucht

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);
   }
}
Nach dem Login kopieren

输出

Value after addition: 0.30000000000000004
false
Value after addition: 0.5
true
Nach dem Login kopieren

说明

在上面的代码中,我们在进行第一次加法运算时,'data2'的预期值为0.30,但是输出结果是错误的。但是,当我们进行另一个类似的加法运算时,我们得到了准确的结果,并且通过了相等性测试。因此,不建议使用'=='运算符来比较两个double值。

使用compareTo()方法

它是'java.lang.Double'类的一种方法,可用于比较两个Double值。当第一个对象等于传递的对象时,它返回0,如果第一个对象大于传递的对象,则返回正值,否则返回负值。

语法

firstObject.compareTo(secondObject);
Nach dem Login kopieren

示例  

在下面的示例中,我们将初始化两个 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");
      }
   }
}
Nach dem Login kopieren

输出

d1 is greater than d2
Nach dem Login kopieren

使用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");
      }
   }
}
Nach dem Login kopieren

输出

d1 is less than d2
Nach dem Login kopieren

结论

我们已经讨论了借助程序比较 Double 值的三种方法。尽量避免第一种方法,即使用“==”运算符来比较双精度值,因为它可能会因舍入误差而导致错误的结果。另外两个名为compare()和compareTo()的内置方法将为我们提供准确的结果。

Das obige ist der detaillierte Inhalt vonBeispiel für einen Java-Double-Vergleich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage