PHP 数学函数返回错误结果

发布于 2024-12-09 23:07:49 字数 186 浏览 0 评论 0原文

我有一个变量包含:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

公布 2024-12-16 23:07:49
$plvl^2

只是反转 plvl 的第二低位(^按位异或)。您想要 pow

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

just inverts the second-lowest bit of plvl (^ is the bitwise XOR). You want pow:

40 * pow($plvl, 2) + 360 * $plvl;
单调的奢华 2024-12-16 23:07:49

^ 运算符不是求幂运算符,它是异或 (XOR) 位运算符。使用 pow($plvl, 2) 代替 $plvl^2

The ^ operator is not exponentiation, it is the eXclusive OR (XOR) bitwise operator. Instead of $plvl^2, use pow($plvl, 2)

属性 2024-12-16 23:07:49

^ 是异或,而不是求幂。 2^2 为零。

^ is XOR, not exponentiation. 2^2 is zero.

旧话新听 2024-12-16 23:07:49

只是:

$plvl = 2;

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

实际上不需要括号。

Just :

$plvl = 2;

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

Not need the parentheses actually.

前事休说 2024-12-16 23:07:49

然后使用

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

它就可以了。也许,^ 运算符不是有效的 php 运算符。

Use

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

it works then. Maybe, the ^ operator is not a valid php operator.

流心雨 2024-12-16 23:07:49

除了其他答案之外:通常简单的乘法比使用 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 of pow($plvl,2).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文