This question already has answers here:
Why does integer division by zero 1/0 give error but floating point 1/0.0 returns “Inf”?

(5个答案)


3年前关闭。




    double doubleResult = 1d/0d;
    System.out.println(doubleResult);

    int intResult = 1/0;
    System.out.println(intResult);


输出为:

Infinity
Exception in thread "main" java.lang.ArithmeticException: / by zero


为什么双零除会返回Infinity而整数零除会引发异常?

最佳答案

这主要是由于double类型(在Java中为IEEE754 64位双精度类型)具有无穷大的表示,而int类型却没有这种表示。

请注意,double doubleResult = 1 / 0;仍将引发异常:将结果分配给的变量的类型无关紧要。

07-26 07:53