温馨提示×

java如何判断两个double是否相等

小亿
396
2023-09-22 00:06:39
栏目: 编程语言
Java开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Java中,判断两个double是否相等不能直接使用==运算符,因为浮点数在计算机中是以二进制形式存储的,存在精度问题。应该使用Double.compare()方法或者自定义一个误差范围进行比较。

  1. 使用Double.compare()方法进行比较:
double a = 0.1 + 0.2;
double b = 0.3;
if (Double.compare(a, b) == 0) {
System.out.println("a和b相等");
} else {
System.out.println("a和b不相等");
}
  1. 自定义一个误差范围进行比较:
double a = 0.1 + 0.2;
double b = 0.3;
double epsilon = 1e-10;
if (Math.abs(a - b) < epsilon) {
System.out.println("a和b相等");
} else {
System.out.println("a和b不相等");
}

在这个例子中,我们定义了一个很小的误差范围epsilon,如果两个double的差的绝对值小于这个误差范围,则认为它们相等。这样可以解决精度问题,但需要注意选择合适的误差范围。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:java如何判断两个bigdecimal是否相等

0