首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于java.lang.Math.max方法的源码看不懂,求指点,该如何处理

2012-02-01 
关于java.lang.Math.max方法的源码看不懂,求指点下面是Math.max方法中float类型的重载方法的源代码Java co

关于java.lang.Math.max方法的源码看不懂,求指点
下面是Math.max方法中float类型的重载方法的源代码

Java code
 public static float max(float a, float b) {        if (a != a) return a;    //If either value is NaN, then the result is NaN.    if ((a == 0.0f) && (b == 0.0f)        && (Float.floatToIntBits(a) == negativeZeroFloatBits)) {        return b;    }    return (a >= b) ? a : b;    }

但是 if (a != a) return a;这句看不懂啊,注释里说如果任意值不是float类型,结果就是那个非数字?
返回值不是float类型的吗?
而且if (a != a)这个怎么能做判断,难道a非数字时就会返回true吗?我这里a为非数字完全不能编译啊。。
我是新手,学了重载,想看看官方是怎么写的。。结果看不懂,求指点谢谢了

[解决办法]
http://topic.csdn.net/u/20090918/11/a5058986-ed4a-4ef1-921b-a02f64848ead.html希望对你有用吧,呵呵
[解决办法]
任何数与nan比较,都返回NaN

热点排行