php pow函数返回NAN

时间:2017-08-28 14:00:05

标签: php nan pow

执行时

echo pow( -0.3741569180353 , 0.2 ) ;

我收到结果NAN

在excel和计算器中,我得到答案-0.8215。

解决这个问题的解决方案是什么,因为我有很多这样的计算?

2 个答案:

答案 0 :(得分:1)

在与#11室的专家进行一些咨询后,pow()无法使用负数的根。 答案应该是0.8215还是-0.8215

奇怪的是,使用**(幂)运算符将使用负数的根

echo -0.3741569180353 ** 0.2 ;

因为**的优先级高于-,所以有效的是

echo -(0.3741569180353 ** 0.2) ;

答案 1 :(得分:0)

给定a一个负数,它对整数指数的权力定义如下:

  • a 0 0 - 通常视为正面;
  • a 1 a - 否定;
  • a 2 a*a - 正面;
  • a n 对于n的奇数值为负,对n的偶数值为正。

负基数与非整数指数的取幂是not defined in real numbers
(但是,它以复数定义。)

pow()功能正确无误。它返回NaN,因为结果不是实数。

甚至在文档的Examples部分中指定了该行为:

echo pow(-1, 5.5); // PHP >=5.2.2: NAN
相关问题