Java用一段代码检测两个 double 型的x和y是否相等。代码应能 分辨这两个数是否是无穷大或 NaN。如果它们相等,代码都能正确 显示这两个数。
时间: 2023-07-15 18:12:54 浏览: 224
可以使用Double的equals方法来检测两个double类型的数是否相等,但是需要注意以下几点:
1. Double.NaN不等于任何数,包括它自己。
2. Double.POSITIVE_INFINITY和Double.NEGATIVE_INFINITY也不等于任何数,包括它们自己。
3. 在比较两个数是否相等之前,需要先判断它们是否为无穷大或NaN,因为这些特殊值有可能会导致equals方法返回false。
下面是一段示例代码:
```java
public class DoubleEquals {
public static void main(String[] args) {
double x = 3.0;
double y = Math.sqrt(9);
if (Double.isNaN(x) || Double.isNaN(y) || Double.isInfinite(x) || Double.isInfinite(y)) {
System.out.println("x和y不能比较");
} else if (Double.compare(x, y) == 0) {
System.out.println("x和y相等");
} else {
System.out.println("x和y不相等");
}
}
}
```
输出结果为:
```
x和y相等
```
阅读全文
相关推荐







