我有一个非常基本的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之间有什么区别?
答案 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是正确的:
如何复制:
<?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