Отрицательное число в нецелую степень в Javascript - PullRequest
2 голосов
/ 14 января 2012

Я пишу сценарий, который должен сделать что-то вроде этого в один момент: Math.pow(-2,1.5).Результат должен быть примерно -2,82843, но вместо этого Javascript возвращает NaN.(Я пробовал это и в Google Chrome 17, и в Mozilla Firefox 11.) Если показатель степени является целым числом, например, в Math.pow(-2,3), то Javascript вернет правильный ответ, который в данном случае равен -8.Положительные числа также правильно повышаются до нецелых степеней;Math.pow(2,1.5) оценивается примерно в 2,8284271247461903.Есть ли способ, которым я могу получить Javascript для вычисления значения отрицательного числа в нецелую степень?

1 Ответ

8 голосов
/ 14 января 2012

Math.pow(-2, 1.5) возвращает NaN, потому что нет действительного числа, равного -2, взятого в степень 1,5.С этим свойством существует комплексное число, но Math.pow() не выполняет вычисления с использованием комплексных чисел.

Это простое преобразование показывает, что это так:

(- 2) 1,5 = (-2) 1 * (-2) 0,5 = (-2) * sqrt (-2) = (-2) * i * sqrt (2) = -2i * sqrt (2)

...