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