执行时
echo pow( -0.3741569180353 , 0.2 ) ;
我收到结果NAN
在excel和计算器中,我得到答案-0.8215。
解决这个问题的解决方案是什么,因为我有很多这样的计算?
答案 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