Java Double比较示例

Java Double比较示例

Double是Java中可用的原始数据类型之一,表示十进制数。它属于浮点类型,也称为实数,在计算需要小数值时使用。例如,表示1/5的结果,即0.2,正弦和余弦的结果也需要小数点。除了表示小数值之外,我们还可以对两个double类型的变量执行比较操作。本文旨在通过示例程序探讨比较double变量的可能方法。

在Java中比较Double

在本节中,我们将解释如何在Java中比较Double。我们可以使用以下方法:

  • 使用==运算符

  • 使用compareTo()方法

  • 使用compare()方法

让我们逐个通过示例程序来讨论它们。

使用==运算符

==运算符是Java中可用的关系运算符之一。它用于比较两个数据类型的值。更准确地说,它执行相等性测试,即检查给定的值是否相等,如果两个值相等,则返回true,否则返回false。

然而,由于舍入误差,许多Java开发人员不推荐使用等号运算符。舍入误差在使用浮点数时非常常见。因此,当我们使用==运算符比较double值时,可能会得到错误的结果。

示例

在这个示例中,我们将使用'=='运算符来比较两个double值。

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值的方法,并通过程序进行了实现。尽量避免使用第一种方法,即使用'=='运算符来比较double值,因为这可能会导致由于舍入误差产生错误的结果。另外,另外两种内置方法compare()和compareTo()将提供准确的结果。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程