java中除数为0时出现的异常情况

在数学中,规定被除数不能为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

今天在统计数据中遇到这个问题,所以特意列出来

在数学中,规定被除数不能为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 今天在统计数据中遇到这个问题,所以特意列出来
经验分享 程序员 微信小程序 职场和发展