Java中除数能否为0

您所在的位置:网站首页 在除法计算中0不能做什么 Java中除数能否为0

Java中除数能否为0

2024-07-13 14:27| 来源: 网络整理| 查看: 265

Java中除数能否为0

在数学运算中运算除法的时候,相信大家心里都会绷起一根弦(至少会有这样的潜意识):除数不能为0。能这么想的程序员相信都是非常注重代码健壮性的,这是个好习惯,但是除数是不是一定不能是0呢?

在做整型除法的时候,除数是不能为0的,否则会报异常。如下面这句代码:

int d = 2/0;

执行的时候会报java.lang.ArithmeticException: / by zero

在做浮点数运算的时候,除数是可以为0的,如下面这句代码:

float a = 5.0/0;

这句话是不会报异常的,a的值为Infinity,表示无限大。

如果这样写:

float a = 0.0/0;

a的值为Nan,表示非数值。

 

在Float和Double类中定义了Infinity和Nan,以float为例:

public static final float POSITIVE_INFINITY = 1.0f / 0.0f; public static final float NEGATIVE_INFINITY = -1.0f / 0.0f; public static final float NaN = 0.0f / 0.0f;

这些值得定义有什么意义呢,个人理解是在某些算数运算中可以省略一些边缘的条件的判断。比如下面这句代码:

Math.atan(a / b)

a和b都是浮点数,此时就不用考虑b是不是为0了,当b为0的时候,无穷大的反正切值为π/2,该运算是有意义的,运算结果也正是如此,我们就不用把90°角拿出来单独考虑了。但是换成sin或者cos或者asin或者acos,无穷大就没有意义了,

System.out.println(Math.sin(2.0/0));

运算结果为NaN。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3