2011-10-14 45 views
2

我有一個包含一個變量:PHP數學函數返回錯誤結果

40 * ($plvl^2)) + (360 * $plvl); 

其中$ plvl等於2.根據鎢和google正確的結果應該是880,但PHP函數返回720

有誰知道他們爲什麼會返回不同的值,我如何糾正它導致880?

+2

我_constantly_忘了'^'沒有做我認爲它在PHP中所做的。 – Znarkus

回答

9
$plvl^2 

只是反轉plvl的第二最低位(^bitwise XOR)。你想pow

40 * pow($plvl, 2) + 360 * $plvl; 
+1

非常感謝! – Kraffs

+2

@Kraffs你應該接受答案,如果沒關係。 – beerwin

5

^運營商不求冪,這是異或(XOR)位運算符。而不是$plvl^2,使用pow($plvl, 2)

3

^是XOR,而不是冪乘。 2^2是零。

0

使用

40 * pow($plvl,2) + (360 * $plvl); 

它的工作原理呢。也許,^運算符不是有效的PHP運算符。

1

剛:

$plvl = 2; 

echo 40*$plvl*$plvl+360*$plvl; //880 

不需要括號實際。

0

除了其他答案:通常簡單乘法比使用pow更有效率。所以你應該使用$plvl * $plvl而不是pow($plvl,2)