上面我说double是-2^63 ~ 2^63-1,可能说错了,但无论如何,Double.NaN应该是有限种可能的值中的一个

解决方案 »

  1.   

    我也不知道 所有的书上都是这么说的
      任何比较中只要有 NaN 结果都是 false
    但都没有解释
    也许 语法 不需要什么理由吧不过我想可能是因为
    很多情况都会产生 NaN
    比如 23 % 0 和 Math.sqrt(-double)
    可能为了区别 不同的产生原因 干脆让所有的 NaN 间得比较都为 false
    不知道对不对
      

  2.   

    谢谢,可是Double.POSITIVE_INFINITY==Double.POSITIVE_INFINITY,
    产生无穷大的原因也很多啊
    大家随便发言
      

  3.   

    这可能只是java语言的一个规定吧,如果你能知道它如何实现double的比较就可以知道吧。可是这个实现代码去那里找呢?
      

  4.   

    * @author Lee Boynton
     * @author Arthur van Hoff
     * @version 1.80, 04/09/02
     * @since JDK1.0看来我只能去问他们了,谢谢所有关心此问题的人