PHP POW函数返回NAN
当我执行PHP POW函数返回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) ;
但是,当我分配到一个变量,同样的问题 '$ v1 = -0.3741569180353; $ v2 = 0.2; echo $ v1 ** $ v2;' –
'$ v1 = -0.3741569180353; $ v2 = 0.2; echo $ v1 ** $ v2; (abs($ v1)** $ v2);' 结果:-0.82150603063756' –
'$ v1 = -0.3741569180353; $ v2 = 0。2; echo $ v1 ** $ v2;''v1'是一个负数......因此操作的复杂结果,所以NaN。 'echo -0.3741569180353 ** 0.2;'首先计算'0.3741569180353 ** 0.2'(因为'**'优先于'-'),然后应用'-'一元运算符 –
给定a
为负数,其对整数指数的功率定义如下:
-
a
0
是0
- 通常视为正面; -
a
1
isa
- negative; -
a
2
是a*a
- positive; -
a
n
为负的n
奇数值和阳性的n
偶数值。
负基指数到非整数指数的指数为not defined in real numbers。
(但是,以复数定义)
pow()
函数是正确的。它返回NaN
,因为结果不是实数。
行为甚至在文档的Examples部分中指定:
echo pow(-1, 5.5); // PHP >=5.2.2: NAN
使用'回波-0.3741569180353 ** 0.2;'与PHP> = 5.6.0 –