我有代码来计算两个数字之间的百分比差-(oldNum - newNum) / oldNum * 100;-其中两个数字都是double。我希望在oldNum为0的情况下必须添加某种检查/异常处理。但是,当我对oldNum和newNum的值均为0.0进行测试运行时,执行继续,就好像什么都没有发生并且没有引发任何错误一样。将此代码与int一起运行肯定会导致算术除零异常。对于double,为什么Java会忽略它?

最佳答案

从数学上讲,被零除的结果是 undefined ,可以用浮点数/ double 数表示(作为NaN-不是数字),但是从根本上讲这不是错误的。

由于整数必须具有特定的数值,因此在处理它们时必须除以零而引发错误。

10-04 14:36