【问题标题】:Zero division java integer vs double [duplicate]零除java整数与双精度[重复]
【发布时间】:2016-11-06 07:05:30
【问题描述】:
    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而int零除法抛出异常?

【问题讨论】:

标签: java integer-arithmetic


【解决方案1】:

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

请注意,double doubleResult = 1 / 0;仍然会引发异常:分配结果的变量的类型不相关。

【讨论】:

    猜你喜欢
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-01
    • 1970-01-01
    相关资源
    最近更新 更多