向除数中加入一个非常小的数字不是为了处理除零除外是一个好习惯吗?

fug*_*ama -5 java double divide-by-zero

我想保持我的代码干净,避免不必要的IF分支.
向除数中加入一个非常小的数字不是为了处理除零除外是一个好习惯吗?以下代码是否被视为良好做法?
我知道这种比较在这种情况下不是纯粹100%准确,但让我们没关系.

double safeDivision(double dividend, double divisor)
{
    return (dividend + Double.MIN_VALUE)/(divisor + Double.MIN_VALUE);
}
Run Code Online (Sandbox Code Playgroud)

Luk*_*der 16

为什么在上下文中担心这个double

System.out.println( 1.0 / 0.0);
System.out.println( 0.0 / 0.0);
System.out.println(-1.0 / 0.0);
Run Code Online (Sandbox Code Playgroud)

产量

无限
NaN
-Infinity

毕竟,这是正确的结果,对吧?引入不准确只会以完全不同的意外方式咬你.不要这样做.

  • 只是作为一个学究,( - )1/0≠( - )无限,在现实生活中数学它是未定义的.绘制f(x)=( - )1/x的图形,你就会明白为什么. (2认同)
  • 好吧,“另类事实”,真的 (2认同)