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)。
xEy
是 x * 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)
我想了解 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)。
xEy
是 x * 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)