我有这个代码
declare @termtomonths float
set @termtomonths=120/365.00
set @termtomonths= round(@termtomonths,2,1)*12
select power(1-(1+0.11/12.00), -3.84)
Run Code Online (Sandbox Code Playgroud)
当我运行它时,它返回一个错误
Msg 3623, Level 16, State 1, Line 6
An invalid floating point operation occurred.
Run Code Online (Sandbox Code Playgroud)
它在MS EXCEL中尝试此公式,并且有效
=1-(1+0.11/12)^-3.84
Run Code Online (Sandbox Code Playgroud)
预期结果
0.034432865
Run Code Online (Sandbox Code Playgroud)
如何将这个Excel公式转换为sql公式?
谢谢
你的SQL表达式是错误的。要获得与 Excel 中相同的效果,您应该执行以下操作:
SELECT 1 - POWER(( 1 + 0.11 / 12.00 ), -3.84);
Run Code Online (Sandbox Code Playgroud)
这将为您提供:0.0344326
请注意,您在 SQL 中拥有1 -
POWER 函数内部,但在 Excel 中没有。
该错误也会导致您获得浮点错误,因为您的基数不能为负。