php pow函数返回NAN
当我执行php pow函数返回NAN,php,nan,pow,Php,Nan,Pow,当我执行 echo pow( -0.3741569180353 , 0.2 ) ; 我得到结果NAN 在excel和计算器中,我得到的答案是-0.8215 由于我有很多这样的计算,解决这个问题的方法是什么?在与11号房间的专家协商后,pow()将无法处理负数的根。 答案应该是0.8215还是-0.8215 奇怪的是,使用**(幂)运算符将处理负数的根 echo -0.3741569180353 ** 0.2 ; 因为**的优先级高于-,所以实际上您所做的是 echo -(0.37415691
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
(但是,它是用复数定义的。) 功能正确。它返回
NaN
,因为结果不是实数
该行为甚至在文件的一节中有详细说明:
使用
echo-0.3741569180353**0.2=5.6.0的代码>但是当我赋值给变量时,同样的问题是$v1=-0.3741569180353$v2=0.2;echo$v1**$v2代码>$v1=-0.3741569180353$v2=0.2;echo$v1**$v2;结果:NAN回波-(绝对值($v1)**$v2)代码>结果:-0.82150603063756`v1=-0.3741569180353$v2=0.2;echo$v1**$v2
$v1
是一个负数。。。。因此,这项行动产生了复杂的结果<代码>回波-0.3741569180353**0.2
首先计算0.3741569180353**0.2
(因为**
优先于-
),然后应用-
一元运算符,但如果您有大量此类计算,我建议您使用能够处理复数的库
echo pow(-1, 5.5); // PHP >=5.2.2: NAN