2016-03-23 65 views
4

私はそれはMS EXCELで、この式を試してみて、それが結果予想SQLのエラーが発生しました。「無効な浮動小数点演算が発生しました。

=1-(1+0.11/12)^-3.84 

に動作します。このコード

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. 

のエラーを返すがあります

0.034432865 

このエクセル式をSQL式に変換するにはどうしたらいいですか?

ありがとうございました

+0

baseが負の数で指数が整数ではないため、sqlでエラーが発生しています。 '1-(1 + 0.11/12)= -0.009166' < - baseと' -3.84' <---指数です。 – Wanderer

答えて

3

あなたの表現はSQLで間違っています。

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

これはあなたが与える:Excelで持っているように、あなたがこれを行う必要があり、同じを取得するために 0.0344326
は、SQLでPOWER関数内ではなく、Excelで1 -を持っています。

また、浮動小数点エラーを発生させる原因となるエラーは、基数が負であってはならないためです。

関連する問題