1e8在除法中的意义

Significance of 1e8 in divisions

我想了解 SQL Server 2012 中的一个小函数调用。我试图在线搜索它,但找不到太多信息。

函数本身很简单。它有两个参数@value 和@default,都是int。当@value 为 null 或 0 时,此函数 DivFix returns @default,否则它 returns @value 本身。

在各种 SQL 语句中调用此函数以避免被零除错误。

Select col1 / DivFix(col2,1e8)

我的问题是,1e8 在这里代表什么,它如何帮助克服被零除的错误?

表示 10^8(10 的 8 次方),即 100000000。 这是 "power(10, 8)"

的缩写

从数学的角度来看,恕我直言,这并不是处理 "divide by 0" 问题的好方法。

使用一个非常小的数字(return接近无限而不是 NaN/失败)而不是这个非常大的数字(这使得微积分 return "something close to 0 but not exactly",除非最后四舍五入使它等于 0)。

xEyx * 10^y 的常用简写形式。所以 2e8 = 2 * 10^8.

至于它如何帮助除以零或 null:我不知道你的要求是什么。 x/0 不是有效的数学运算。在微积分中,结果可以是正无穷大或负无穷大,具体取决于您如何接近 0。

目前的意图似乎是让结果非常小。那么为什么不定义一个常量或将结果设置为 0:

DECLARE @VerySmallNumber float = 1E-8 -- ha! the exponent can be negative too

SELECT IIF(col2 = 0 OR col2 IS NULL, @VerySmallNumber, col1 / col2)