在PHP中,零(负)零等于0吗?

时间:2015-07-06 15:51:50

标签: php mysql

我有一个非常基本的MySQL查询,它从数据库表中读取行,并将行值添加或减去定义为$ total_balance的PHP字符串。

例如;

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

我的问题是,-0和0之间有什么区别?

4 个答案:

答案 0 :(得分:4)

在PHP中,没有真正的区别:

浮子:

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)

答案 1 :(得分:1)

我只是问自己同样的问题,并认为0 === -0是正确的:

-1

true

如何复制:

<?php

$sum = 1.0000001;
$val = 1.00;

$a = round($val - $sum,2);
var_dump($a, $a === 0);
  

float(-0)
  bool(false)

答案 2 :(得分:1)

老问题,但今天偶然发现了一个问题。

if (is_numeric($denominator) && $denominator) {
    return 10 / $denominator;
}

如果$分母为负零,将导致被零除。因此,它看起来像-0 == true可能很好。只是不是我所期望的...

答案 3 :(得分:0)

是,0 == -0。

请参阅下面的测试: http://viper-7.com/pa0xBU