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;

还有NAN与任何数比较都返回false


posted @ 2017-07-31 20:08  杰醍奋  阅读(97)  评论(0编辑  收藏  举报