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
一个负数,其整数指数的幂定义如下:
a
0
是 0
- 通常被视为阳性;
a
1
是 a
- 负数;
a
2
是 a*a
- 阳性;
a
n
对于 n
的奇数值为负,对于 n
的偶数值为正。
负底对非整数指数的幂是not defined in real numbers。
(但是,它是用复数定义的。)
pow()
函数正确。它returns NaN
因为结果不是实数。
该行为甚至在文档的 Examples 部分中指定:
echo pow(-1, 5.5); // PHP >=5.2.2: 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
一个负数,其整数指数的幂定义如下:
a
0
是0
- 通常被视为阳性;a
1
是a
- 负数;a
2
是a*a
- 阳性;a
n
对于n
的奇数值为负,对于n
的偶数值为正。
负底对非整数指数的幂是not defined in real numbers。
(但是,它是用复数定义的。)
pow()
函数正确。它returns NaN
因为结果不是实数。
该行为甚至在文档的 Examples 部分中指定:
echo pow(-1, 5.5); // PHP >=5.2.2: NAN