我有代码来计算两个数字之间的百分比差-(oldNum - newNum) / oldNum * 100;
-其中两个数字都是double
。我希望在oldNum为0的情况下必须添加某种检查/异常处理。但是,当我对oldNum和newNum的值均为0.0进行测试运行时,执行继续,就好像什么都没有发生并且没有引发任何错误一样。将此代码与int
一起运行肯定会导致算术除零异常。对于double
,为什么Java会忽略它?
最佳答案
从数学上讲,被零除的结果是 undefined ,可以用浮点数/ double 数表示(作为NaN
-不是数字),但是从根本上讲这不是错误的。
由于整数必须具有特定的数值,因此在处理它们时必须除以零而引发错误。