在数学中,规定被除数不能为0
那么在Java程序中一旦出现除数为0时,会出现什么情况呢:
对于除数a和被除数b (b=0),
(1)如果二者均为int型(long也是int型),结果会抛出异常:java.lang.ArithmeticException: / by zero
(2)如果其中有一个为double或者float型,结果则是Infinity
另外,对于Double和Float的NaN/Infinity等是否相等呢:
Float.NaN == Double.NaN false
Float.NEGATIVE_INFINITY == Double.NEGATIVE_INFINITY true
Float.POSITIVE_INFINITY == Double.POSITIVE_INFINITY true
所以对于除数有可能为0时需要对除法结果做个判断:
1、是否为NaN 例如:double toltal_ff =0.00; Double.isNaN(toltal_ff) 返回false
2、是否为无穷大 Double.isInfinite(toltal_ff) 是无穷大返回true
今天在统计数据中遇到这个问题,所以特意列出来