當我執行PHP POW函數返回NAN
echo pow(-0.3741569180353 , 0.2) ;
我得到的結果NAN
雖然在Excel和計算器,我得到了答案-0.8215。
解決這個問題的方法是什麼,因爲我有很多這樣的計算?
當我執行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
is a
- 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 –