2013-01-17 5 views
5

Wolfram Alpha sagt, wird das richtige Ergebnis für die folgende Formel ergeben:Php, Berechnung Exponenten mit Karotte (^) nicht

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

Aber wenn ich es in PHP laufen, ist es nicht die richtige Antwort geben, warum nicht?

$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)); 
} 

Antwort

11

Der ^ Operator ist ein bitwise Operator.

Sie müssen pow verwenden.

Wenn Sie nur einen Wert quadrieren möchten, können Sie ihn einfach multiplizieren, $current * $current.

6

Sie müssen die pow($number, $exponent) Funktion verwenden.

In PHP ^doesn't mean an exponent.

$price = ((0.0004954*(pow($current, 2)))-((0.935*$current)+378.486))-((0.0004954* (pow($desired, 2)))-((0.935*$desired)+378.486));

0

^ist die XOR-Bit-Operator

Sie pow verwenden können, wie durch Supericy erwähnt, aber Sie können auch einfach den ** Operator für Stenografie.