php pow 函数 returns NAN

php pow function returns NAN

当我执行

echo pow( -0.3741569180353 , 0.2 ) ;

我正在获取结果 NAN

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

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

在与 11 号房间的专家协商后,pow() 不适用于负数的根。 答案应该是 0.8215 还是 -0.8215

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

echo -0.3741569180353 ** 0.2 ;

因为 ** 的优先级高于 -,所以实际上你所做的是

echo -(0.3741569180353 ** 0.2) ;

给定a一个负数,其整数指数的幂定义如下:

  • a00 - 通常被视为阳性;
  • a1a - 负数;
  • a2a*a - 阳性;
  • an 对于 n 的奇数值为负,对于 n 的偶数值为正。

负底对非整数指数的幂是not defined in real numbers
(但是,它是用复数定义的。)

pow()函数正确。它returns NaN因为结果不是实数。

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

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