Вольфрам Альфа говорит, что даст правильный результат по следующей формуле:
((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)); }
Оператор ^
является поразрядным оператором.
Вам нужно использовать pow .
Если вы просто хотите, чтобы квадрат значения, вы можете просто несколько его по себе, $current * $current
.
Вам нужно использовать функцию 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));
^ является побитовым оператором XOR
Вы можете использовать pow, как указано Supericy, но вы также можете просто использовать оператор ** для сокращения.