当前位置: 代码迷 >> Java相关 >> (分享)学习Java应注意的一些细节(二)
  详细解决方案

(分享)学习Java应注意的一些细节(二)

热度:108   发布时间:2009-10-17 16:14:47.0
(分享)学习Java应注意的一些细节(二)
可以让i!=i吗?

当你看到这个命题的时候一定会以为我疯了,或者Java语言疯了。这看起来是绝对不可能的,一个数怎么可能不等于它自己呢?或许就真的是Java语言疯了,不信看下面的代码输出什么?
  double i=0.0/0.0;
  if(i==i){
      System.out.println("Yes i==i");
  }else{
      System.out.println("No i!=i");
  }
上面的代码输出"No i!=i",为什么会这样呢?关键在0.0/0.0这个值,在IEEE 754浮点算术规则里保留了一个特殊的值用来表示一个不是数字的数量。这个值就是NaN("Not a Number"的缩写),对于所有没有良好定义的浮点计算都将得到这个值,比如:0.0/0.0;其实我们还可以直接使用Double.NaN来得到这个值。在IEEE 754规范里面规定NaN不等于任何值,包括它自己。所以就有了i!=i的代码。
搜索更多相关的解决方案: 细节  分享  学习  Java  

----------------解决方案--------------------------------------------------------
  相关解决方案