
该方法可以对某些 *** 作返回 true ,例如:
System.out.println(Float.isNaN(0.0f / 0.0f));System.out.println(Double.isNaN(Math.sqrt(-1)));
基本上,
NaN代表一个未定义的值。值
0.0 / 0.0是
NaN,和
Nan !=NaN。这似乎是合乎逻辑的,因为它
Math.sqrt(-1)也给了您
NaN。
请参阅的javadoc
Double.NaN:
它等效于返回的值
Double.longBitsToDouble(0x7ff8000000000000L)
然后
Double.longBitsToDouble():
如果参数是在范围内的任何值
0x7ff0000000000001L通过0x7fffffffffffffffL或在范围0xfff0000000000001L通过0xffffffffffffffffL,其结果是一个NaN。Java提供的IEEE
754浮点运算无法区分具有不同位模式的相同类型的两个NaN值。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)