我有这段代码
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)
当我运行它时,它会返回错误
Msg 3623, Level 16, State 1, Line 6
An invalid floating point operation occurred.
它在MS EXCEL中尝试这个公式并且它可以正常工作
=1-(1+0.11/12)^-3.84
预期结果
0.034432865
如何将此excel公式转换为sql公式?
由于
答案 0 :(得分:3)
您的表达式在SQL中是错误的。 要获得与Excel中相同的结果,您应该这样做:
SELECT 1 - POWER(( 1 + 0.11 / 12.00 ), -3.84);
这会给你:0.0344326
请注意,SQL中的POWER函数内部有1 -
,但Excel中没有。
错误也会导致您获得浮点错误,因为您的基数不能为负数。