2015-07-06 17 views
8

Ho una query MySQL molto semplice che legge le righe da una tabella di database e aggiunge o sottrae il valore della riga a una stringa PHP definita come $ total_balance.È negativo (negativo) lo zero equivalente a 0 in PHP?

Ad esempio;

$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, '.', ','); 

La mia domanda è, qual è la differenza tra -0 e 0?

+1

Zero non può essere negativo !! –

+3

Sì, può. Si chiama zero firmato ed è una parte importante dei numeri in virgola mobile. –

+0

Il saldo è sempre Debito meno credito. – Linesofcode

risposta

4

In PHP, non v'è alcuna differenza reale:

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

Perché 'non reale'? C'è una differenza o no? Per me, sembra che non ci sia alcuna differenza. –

+0

perché sì, sotto IEEE 754, ci sono zero positivi e negativi. php lo ignora e tratta tutti gli zero come zero. –

+0

Conosco IEEE 754. La mia domanda era come PHP si assicura che '-0 === + 0' sia vero. –

Problemi correlati