使用Java语言代码检测两个double型数是否相等。代码应该能分辨这两个数是否是无穷大或者为空。如果他们相等,代码能正确显示这两个数。
时间: 2024-09-22 18:05:59 浏览: 30
在Java中,由于浮点数的精度问题,直接使用`==`运算符比较double类型的数值可能会导致意外的结果。因此,我们需要使用`Double.compare()`函数或者三元运算符来处理这种情况,同时检查它们是否为null或者无穷大。以下是示例代码:
```java
public class Main {
public static void main(String[] args) {
Double num1 = Double.parseDouble("1.0"); // 测试数值
Double num2 = null; // 测试空值
Double infinity = Double.POSITIVE_INFINITY; // 测试无穷大
compareAndDisplay(num1, num2);
compareAndDisplay(num1, infinity);
System.out.println();
compareAndDisplay(infinity, infinity); // 无穷大的比较
}
public static void compareAndDisplay(Double num1, Double num2) {
if (num1 == null && num2 == null) {
System.out.println("两个数都是null");
} else if (num1 == null || num2 == null) {
System.out.println("其中一个数是null");
} else if (Double.isInfinite(num1) && Double.isInfinite(num2)) {
System.out.println("两个数都是无穷大");
} else if (Double.compare(num1, num2) == 0) {
System.out.printf("两个数相等: %.2f\n", num1); // 输出精确到小数点后两位
} else {
System.out.println("两个数不相等");
}
}
}
```
阅读全文