你如何测试双精度值是否等于NaN?

2022-08-31 05:04:49

我在Java中有一个双精度,我想检查它是否是.最好的方法是什么?NaN


答案 1

使用静态 Double.isNaN(double) 方法,或您的 .isNaN() 方法。Double

// 1. static method
if (Double.isNaN(doubleValue)) {
    ...
}
// 2. object's method
if (doubleObject.isNaN()) {
    ...
}

简单地做:

if (var == Double.NaN) {
    ...
}

由于 NaN 和浮点数的 IEEE 标准是如何定义的,因此是不够的


答案 2

尝试 Double.isNaN()

如果此双精度值是非数字 (NaN),则返回 true,否则返回 false。

请注意,[] 将不起作用,因为未装箱的双精度型没有与之关联的方法。double.isNaN()