除以1.0 / 0.0:输出为无穷大

时间:2015-07-08 11:07:52

标签: java

double d=1.0/0.0;

输出为Infinity

double d=1/0;

输出为ArithmeticException

这两者有什么区别? Infinity的含义是什么?

3 个答案:

答案 0 :(得分:6)

第一个案例被视为double的一个分区,后一个案例被视为int的一个分区,因此是ArthimeticException。

这是无限意味着什么

http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#POSITIVE_INFINITY

双精度和浮点数的划分符合浮点匹配的IEEE 754标准,不应该抛出异常。

答案 1 :(得分:0)

在数学上,除零是不确定的,尽管它可以被宽泛地视为无穷大。 (更严格一点,对于x的任何值,它都是大于x的数字。)

IEEE754浮点双(由Java使用)具有无穷大的表示。这是1.0 / 0.0的结果。从这个意义上讲,1.0 / 0.0是可计算的,因为它发生在浮点运算中。

整数类型没有无穷大的表示,因此抛出异常。 1 / 0以整数运算计算。

答案 2 :(得分:0)

浮点数有一种代码“无穷大”的方法。因此,无穷大是双变量的有效值。整数变量没有此选项。因此抛出异常。