今天偶然看到Float中有如下一个方法:    static public boolean isNaN(float v) {
return (v != v);
    }但我不明白的是这个方法什么时候才能返回true呢,
v!=v这叫什么判断??

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【becloud】截止到2008-06-27 10:54:22的历史汇总数据(不包括此帖):
    发帖数:0                  发帖分:0                  
    结贴数:0                  结贴分:0                  
    未结数:0                  未结分:0                  
    结贴率:-------------------结分率:-------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    当你传入一个Float.NAN的时候就不等了
      

  3.   

    我又看了下源码,
    实际上就是如下操作:
    0.0f / 0.0f!=0.0f / 0.0f
    0.0f / 0.0f返回的是NaN
    2个NaN又怎么比的呢?
      

  4.   

    NaN 实际上就是 Not a Number的简称。0.0f/0.0f的值就是NaN,从数学角度说,0/0就是一种未确定。其他的,看看三楼的解释,我也赞同。
      

  5.   

    其实我疑惑的是这里:
    v != v
    如果传进去的是Float.NAN,
    不就是NaN!=NaN吗?
    NaN既然可以和普通的其他数据比:Float.NaN==1就返回的false
    那NaN为什么不能和自己比呢??有没有其他说法??
      

  6.   


    NaN可以认为是无穷大也可以理解为不是数,如果认为是无穷大,那如果有两个无穷大A和B,那到底A大还是B大呢,天上的大星星有无穷多个,小星星也有无穷多个,那大星星的数量和小星星的数量怎么比较呢?