PHP Math函数返回错误的结果

时间:2011-10-14 21:11:43

标签: php math

我有一个包含以下内容的变量:

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

$ plvl等于2.根据wolfram和google,正确的结果应该是880,但PHP函数返回720.

有谁知道为什么他们会返回不同的值,我如何更正它以产生880?

6 个答案:

答案 0 :(得分:9)

$plvl^2

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

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

答案 1 :(得分:5)

^运算符不是取幂,它是eXclusive OR(XOR)按位运算符。而不是$plvl^2,请使用pow($plvl, 2)

答案 2 :(得分:4)

^是异或,而不是指数。 2 ^ 2为零。

答案 3 :(得分:1)

只是:

$plvl = 2;

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

实际上不需要括号。

答案 4 :(得分:0)

使用

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

然后它起作用。也许,^运算符不是一个有效的php运算符。

答案 5 :(得分:0)

除了其他答案之外:通常简单的乘法比使用pow更有效。因此,您应该使用$plvl * $plvl代替pow($plvl,2)