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比较示例的详细内容,更多请关注恰卡编程网(mip.qiaqa.com)其它相关文章!
推荐阅读
-
在Python中,将K添加到列元组列表中的最小元素
处理数据集涉及识别特定列中的最小值并通过添加常量值(K)来更新它。通过实施优化的解决方案,我们可以有效地执行此操作,这对于数据...
-
使用switch case语句编写的C程序,用于计算几何图形的面积
#includevoidmain(){intfig_code;floatside,base,length,...
-
如何使 C# 代码可重用?
要在C#中使代码可重用,请使用接口。接口定义属性、方法和事件,这些成员是接口的成员。接口只包含成员的声明。派生类负责定义成员。这通...
-
C# 中的覆盖和隐藏有什么区别?
方法隐藏在C#中也称为隐藏。父类的方法可供子类使用,无需在遮蔽中使用override关键字。子类有其自己版本的相同函数。在...
-
在Java中使用示例双倍longValue()函数
Java是一种强大的面向对象语言,可以对各种数据类型进行高度的控制和精确度。其中一种功能是doublelongValue(),...
-
如何在Java中定义JSON字段名称的命名约定?
TheFieldNamingPolicycanbeusedtodefineafewstandardnaming...
-
Servlet中的HttpSession接口
在JavaWeb开发领域,了解HttpSession接口是创建动态和响应式Web应用程序的关键。在本文中,我们将探讨...
-
使用while循环查找自然数之和的Java程序
自然数之和可以使用编程语言中的不同迭代语句来计算。迭代语句是执行一组特定代码行直到循环语句中的条件失败的语句。在本文中,我们将讨论...
-
我们可以将Java数组转换为列表吗?
我们可以使用Arrays.asList()方法轻松地将Java数组转换为List。语法publicstaticLi...
-
Java中如何在不使用任何外部库的情况下读取网页内容?
TheURLclassofthejava.netpackagerepresentsaUniformResour...