您好,欢迎访问一九零五行业门户网

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.30000000000000004falsevalue after addition: 0.5true
说明在上面的代码中,我们在进行第一次加法运算时,'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比较示例的详细内容。
其它类似信息

推荐信息