问题一:不懂什么是NaN问题二:下面的代码输出为false,真的让我很莫名其妙!!
public class Test{
public static void main(String []a){
if(Double.NaN == Double.NaN){
System.out.println(true);
}else{
System.out.println(false);
}
}
}

解决方案 »

  1.   

    好像两个 Double.NaN根本不能比较,我把“==”先后换成“<”和“>”,输出都是false,为什么啊?
      

  2.   

    1. NaN =  not a number2. NaN =! NaN 就这样的哇我感觉这种东西没有什么大的意思的 理解就好啦还有null 和 undefined 另外null 未定义或空字符串 undefined 对象属性不存在 OR 声明了变量但从未赋值。
      

  3.   

    http://topic.csdn.net/t/20021025/15/1124953.html
      

  4.   


    哎哟 哥哥 这个东西到哪里都是一样的意思哇 虽然java没有undefined 
      

  5.   


    引用:这样比较肯定是不行的。   
      NEGATIVE_INFINITY、POSITIVE_INFINITY、NaN只是一个固定的标志值NaN不是一个数,所以用<,<=,>,>=,==比较时,只要有一个是NaN,比较结果总是false,包括NaN==NaN。用!=比较时只要有一个是NaN,比较结果总是true,包括NaN!=NaN。  出现这种情况有
    (1)此常数的值是零被零除所得到的结果。 (2)当运算结果未定义时返回此常数。