Float与Double的isNaN()

来源:互联网 发布:hadoop和mysql的区别 编辑:程序博客网 时间:2024/05/17 02:39

Float与Double的isNaN()  

2009-08-27 21:07:42|  分类:个人日记 |  标签:|举报|字号 订阅

        在JDK的Float与Double中有一个很特别的方法isNaN,细心查看JDK源码可以看到NaN只是Float或Double的一个属性,用于描述非法的float,在经过多次运算后Float或Double可能会出现非法的情况,如0.0/0.0。

            public boolean isNaN(float v) {
                 return (v != v);
             }

       当v为float时比较的是值,这个是毫无疑问的。可什么情况下会出现假呢?这或许与SUN的设计有关

做以下测试:

System.out.println(Float.NaN==Float.NaN);

结果:false

可以得出结论:

1、在Float中NaN实际上是引用类型,而不是值类型的。

2、每一个NaN都是不同的对象。

原文地址http://blog.163.com/itworker@126/blog/static/1339832200972762955433/
0 0
原创粉丝点击