当前位置: 代码迷 >> J2SE >> 关于java.lang.Math.max方法的源码看不懂,求指点,该如何处理
  详细解决方案

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

热度:468   发布时间:2016-04-24 02:23:29
关于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
  相关解决方案