2016-03-23 23 views
4

Ben MS EXCEL bu formülü deneyinSQL, "Bir geçersiz kayan nokta işlemi oluştu."

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) 

bunu çalıştırdığınızda,

Msg 3623, Level 16, State 1, Line 6 
An invalid floating point operation occurred. 

bir hata döndürür Bu kodu var ve

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

beklenen sonucu

işleri
0.034432865 

Bu excel formülünü sql formülüne nasıl dönüştürebilirim?

Teşekkürler

+0

SQL'de hata alıyorsunuz çünkü taban bir negatif sayı ve üstel bir tamsayı değil. 1- (1 + 0.11/12) = -0.009166' <- taban ve -3.84' <--- üssü. – Wanderer

cevap

3

İfadeniz SQL'de yanlıştır. Bu verir

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

: Eğer SQL GÜÇ işlevi içinde 1 - sahip 0.0344326
Not, ancak Excel'de Excel'de olduğu gibi bunu yapmalıyım aynı almak için.

Hata, kayan nokta hatasını almanıza da neden olur, çünkü tablonuz negatif olamaz.

İlgili konular