使用符号 (^) 计算指数的 Php 失败了

6

沃尔夫拉姆阿尔法表示将为以下公式提供正确的结果:

((0.0004954*($current^2))-((0.935*$current)+378.486))-
((0.0004954*($desired^2))-((0.935*$desired)+378.486));

但是当我在PHP中运行它时,它没有给出正确的答案,为什么?
$current = mysql_escape_string($_POST['current']);
$desired = mysql_escape_string($_POST['desired']);
$username = mysql_escape_string($_POST['username']);
$password = mysql_escape_string($_POST['password']);
$email = mysql_escape_string($_POST['email']);
$ip = $_SERVER["REMOTE_ADDR"];
$time = time();
$elo = $desired - $current;
if($current < 1200) {
  $price = ($elo/100)*30;
} elseif($current < 1400) {
  $price = ($elo/100)*35;
} elseif($current < 1901) {
  $price = ((0.0004954*($current^2))-((0.935*$current)+378.486))-((0.0004954*($desired^2))-((0.935*$desired)+378.486));
}
3个回答

13
< p > ^ 运算符是一个 位运算 运算符。

你需要使用 pow 函数。

如果你只想计算一个值的平方,那么你可以将它乘以自己, $current * $current


8
您需要使用pow($number,$exponent)函数。
在PHP中,^不表示指数$price = ((0.0004954*(pow($current, 2)))-((0.935*$current)+378.486))-((0.0004954* (pow($desired, 2)))-((0.935*$desired)+378.486));

4

^ 是按位异或运算符。

你可以像 Supericy 提到的那样使用 pow 函数,但是你也可以使用 ** 运算符作为简写。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接