3 回答
TA贡献1804条经验 获得超8个赞
对于乘法,我们只需将每个参数中的小数位数加在一起(使用钢笔和纸张)来计算输出dec位置。
但师只是把你的头分开了。我现在要躺下了。
但在SQL术语中,它完全符合预期。
--Precision = p1 - s1 + s2 + max(6, s1 + p2 + 1)
--Scale = max(6, s1 + p2 + 1)
--Scale = 15 + 38 + 1 = 54
--Precision = 30 - 15 + 9 + 54 = 72
--Max P = 38, P & S are linked, so (72,54) -> (38,20)
--So, we have 38,20 output (but we don use 20 d.p. for this sum) = 11.74438969709659
SELECT CONVERT(DECIMAL(30,15),146804871.212533)/CONVERT(DECIMAL (38,9),12499999.9999)
--Scale = 15 + 38 + 1 = 54
--Precision = 30 - 15 + 15 + 54 = 84
--Max P = 38, P & S are linked, so (84,54) -> (38,8)
--So, we have 38,8 output = 11.74438969
SELECT CONVERT(DECIMAL(30,15),146804871.212533)/CONVERT(DECIMAL (38,15),12499999.9999)
如果您将每个数字对视为,则如果遵循此规则,您也可以执行相同的数学运算
146804871.212533000000000和12499999.999900000
146804871.212533000000000和12499999.999900000000000
TA贡献1779条经验 获得超6个赞
我们对魔术过渡感到困惑,
P&S是相互关联的,因此:
(72,54) - >(38,29)
(84,54) - >(38,8)
假设(38,29)
是一个错字,应该是 (38,20)
,以下是数学:
一世。72 - 38 = 34,ii。54 - 34 = 20
一世。84 - 58 = 46,ii。54 - 46 = 8
这就是推理:
一世。输出精度减去最大精度是我们要扔掉的数字。
II。那么输出比例减去我们要扔掉的东西给我们...输出比例中的剩余数字。
希望这有助于其他任何人试图理解这一点。
- 3 回答
- 0 关注
- 436 浏览
添加回答
举报