java浮点运算的陷阱
首先呢,i你要明白double和float。
Inifinity:
例如:syso(5.0/0.0+" 和"+0.0 /0.0);
浮点运算的0.0不是真正意义上的0,而是非常接近0
所以啊一个数/一个接近0的数,结果为无穷大。而在java浮点范围内Inifinity表示无穷大。
java若要使用无穷大可以:
double i=1.0/0.0
或者:
double i=Double.POSITIVE_INFINITY
NAN:
not a number 这些值的存在是为了在出现错误条件(譬如算术溢出,给负数开平方根,除以 0 等)下,可以用浮点值集合中的数字来表示所产生的结果。
java中的NAN是这么定义的:
public static final double NaN = 0.0d / 0.0;