2015-07-06 5 views
8

Ich habe eine sehr einfache MySQL-Abfrage, die Zeilen aus einer Datenbanktabelle liest und den Zeilenwert zu einer PHP-Zeichenfolge hinzufügt oder subtrahiert, die als $ total_balance definiert ist.Ist minus (negativ) Null entspricht 0 in PHP?

Zum Beispiel;

$statement_details_query = mysqli_query($con,"SELECT transaction_nominal_code, SUM(transaction_debit) as TotalDebit, SUM(transaction_credit) as TotalCredit FROM accounts_transaction GROUP BY transaction_nominal_code") or die(mysql_error()); 

while($statement_details = mysqli_fetch_array($statement_details_query)) { 

$balance = $statement_details['TotalCredit'] - $statement_details['TotalDebit']; 

$total_balance = $total_balance + $balance; 

} 

echo number_format($total_balance, 2, '.', ','); 

Meine Frage ist, was ist der Unterschied zwischen -0 und 0?

+1

Null nicht negativ sein kann !! –

+3

Ja kann es. Es heißt vorzeichenbehaftete Null und ist ein wichtiger Teil von Gleitkommazahlen. –

+0

Der Saldo ist immer Soll minus Kredit. – Linesofcode

Antwort

4

In PHP gibt es keinen wirklichen Unterschied:

Float:

php > $negZ = -0.0; 
php > $posZ = +0.0; 
php > var_dump($negZ == $posZ, $negZ === $posZ); 
bool(true) 
bool(true) 

Int:

php > $negZ = -0; 
php > $posZ = +0; 
php > var_dump($negZ == $posZ, $negZ === $posZ); 
bool(true) 
bool(true) 
+0

Warum 'nicht real'? Gibt es einen Unterschied oder nicht? Für mich scheint es überhaupt keinen Unterschied zu geben. –

+0

weil ja, unter IEEE 754, gibt es positive und negative Nullen. php gloss das über und behandelt nur alle Nullen als Null. –

+0

Ich kenne IEEE 754. Meine Frage war, wie PHP sicherstellt, dass "-0 === + 0" wahr ist. –