Функция PHP Pp возвращает NAN

Когда я выполню

echo pow( -0.3741569180353 , 0.2 ) ;

Я получаю результат NAN

Находясь в Excel и калькуляторе, я получаю ответ -0,8215.

Какое решение это исправить, так как у меня много таких расчетов?

3

Решение

После некоторой консультации с экспертами в комнате № 11, pow() не будет работать с корнем отрицательного числа.
Если ответ будет 0.8215 или же -0.8215?

Причудливо, используя ** (power) оператор будет работать с корнем отрицательного числа

echo -0.3741569180353 ** 0.2 ;

так как ** имеет более высокий приоритет, чем -так эффективно то, что вы делаете

echo -(0.3741569180353 ** 0.2) ;
1

Другие решения

Дано a Отрицательное число, его степени целочисленных показателей определяются следующим образом:

  • a0 является 0 — обычно считается положительным;
  • a1 является a — отрицательный;
  • a2 является a*a — положительный;
  • an отрицательно для нечетных значений n и положительно для четных значений n,

Возведение в степень отрицательного основания нецелому показателю не определено в действительных числах.
(Это, однако, определено в комплексных числах.)

pow() функция правильная. Возвращается NaN потому что результат не является действительным числом.

Поведение даже указано в Примеры раздел документации:

echo pow(-1, 5.5); // PHP >=5.2.2: NAN
0

По вопросам рекламы [email protected]