6

Wolfram Alpha 说将给出以下公式的正确结果:

((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));
}
4

3 回答 3

13

^运算符是位运算符。

您需要使用pow

如果您只想对一个值进行平方,那么您可以将它本身相乘,$current * $current.

于 2013-01-17T02:46:28.150 回答
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));

于 2013-01-17T02:49:13.680 回答
4

^ 是 XOR 位运算符

您可以使用 Supericy 提到的 pow,但您也可以只使用 ** 运算符作为简写。

于 2017-10-03T14:22:55.293 回答