PHP 数学函数返回错误结果
我有一个变量包含:
40 * ($plvl^2)) + (360 * $plvl);
其中 $plvl 等于 2。根据 Wolfram 和 google,正确的结果应该是 880,但 PHP 函数返回 720。
有谁知道为什么它们返回不同的值以及如何更正它以得到 880 ?
I have a variable containing:
40 * ($plvl^2)) + (360 * $plvl);
Where $plvl equals 2. According to wolfram and google the correct result is supposed to be 880 but the PHP function returns 720.
Does anyone know why they return different values and how do I correct it to result in 880?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
只是反转 plvl 的第二低位(
^
是 按位异或)。您想要pow
:just inverts the second-lowest bit of plvl (
^
is the bitwise XOR). You wantpow
:^
运算符不是求幂运算符,它是异或 (XOR) 位运算符。使用pow($plvl, 2) 代替
$plvl^2
The
^
operator is not exponentiation, it is the eXclusive OR (XOR) bitwise operator. Instead of$plvl^2
, usepow($plvl, 2)
^
是异或,而不是求幂。 2^2 为零。^
is XOR, not exponentiation. 2^2 is zero.只是:
实际上不需要括号。
Just :
Not need the parentheses actually.
然后使用
它就可以了。也许,^ 运算符不是有效的 php 运算符。
Use
it works then. Maybe, the ^ operator is not a valid php operator.
除了其他答案之外:通常简单的乘法比使用 pow 更有效。因此,您也许应该使用
$plvl * $plvl
而不是pow($plvl,2)
。In addition to the other answers: usually simple multiplication is way more efficient than using
pow
. So you should perhaps use$plvl * $plvl
instead ofpow($plvl,2)
.