我正在研究OCPJP的问题,我发现了这个奇怪的代码:
public static void main(String a[]) {
System.out.println(Double.NaN==Double.NaN);
System.out.println(Double.NaN!=Double.NaN);
}
当我运行代码时,我得到了:
false
true
当我们比较两个看起来相同的东西时,输出的false
是怎样的?NaN
是什么意思?
发布于 2015-10-01 22:08:30
这可能不是这个问题的直接答案。但是如果你想检查某些东西是否等于Double.NaN
,你应该使用下面的代码:
double d = Double.NaN
Double.isNaN(d);
这将返回true
发布于 2012-01-11 21:04:10
NaN是一个特殊的值,表示“不是数字”;它是某些无效算术运算的结果,比如sqrt(-1)
,并且具有NaN != NaN
(有时令人讨厌)属性。
发布于 2012-01-11 21:07:16
非数字表示其结果不能用数字表示的运算的结果。最著名的操作是0/0,其结果是未知的。
因此,NaN不等于任何值(包括其他非数字的值)。更多信息,请查看维基百科页面:http://en.wikipedia.org/wiki/NaN
https://stackoverflow.com/questions/8819738
复制相似问题