SQL повышен до степени ошибки " произошла недопустимая операция с плавающей запятой."



У меня есть этот код



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?



Спасибо

608   1  

1 ответ:

Ваше выражение неверно в SQL. Чтобы получить то же самое, что и в Excel, вы должны сделать следующее:

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

Это дает вам: 0.0344326
Примечание. у вас есть 1 - внутри функции POWER в SQL, но не в Excel.

Ошибка-это то, что также приводит к ошибке с плавающей точкой, потому что ваша база не может быть отрицательной.

Comments

    Ничего не найдено.