SQL提升到错误的力量"发生了无效的浮点运算。"

时间:2016-03-23 06:18:12

标签: sql-server tsql

我有这段代码

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公式?

由于

1 个答案:

答案 0 :(得分:3)

您的表达式在SQL中是错误的。 要获得与Excel中相同的结果,您应该这样做:

SELECT  1 - POWER(( 1 + 0.11 / 12.00 ), -3.84);

这会给你:0.0344326
请注意,SQL中的POWER函数内部有1 -,但Excel中没有。

错误也会导致您获得浮点错误,因为您的基数不能为负数。