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を使用する必要があります。

値を 2 乗したいだけの場合は、それ自体で乗算できます$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 に答える