Возврат сложного годового прироста - PullRequest
1 голос
/ 25 октября 2019

Я пытаюсь рассчитать суммарный годовой темп роста. Некоторые значения работают без проблем, но один конкретный набор чисел (наряду с некоторыми другими) генерирует ошибку:

Произошла недопустимая операция с плавающей запятой

Я пыталсяразличные попытки приведения значений, но я все еще получаю ошибку.

SELECT CAST( POWER (
CAST((0.2142 / -1.38613) as float),

CAST(1 as float)/(2015-2012)

) as float) - 1

Основываясь на некоторых ручных вычислениях (если я не полный идиот), я ожидаю, что результат будет -1.5366261528. .. Я также не слишком обеспокоен округлением после 4 десятичных знаков.

1 Ответ

1 голос
/ 25 октября 2019

Я думаю, что проблема в мнимых числах. Когда вы можете поднять отрицательное число до степени 1/3, тогда вы получите отрицательное число без мнимой части.

Однако 1/3 нельзя точно выразить как число с плавающей точкой. Когда вы поднимаете отрицательное число до 0,3333333333, вы получаете мнимое число, которое не может быть выражено как число с плавающей точкой.

Можете ли вы выполнить операцию с положительным основанием для power()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...