如何验证PHP中的舍入值是否相等

时间:2019-10-23 23:06:14

标签: php codeigniter

无法获得总金额和已支付金额的状态。付费状态功能无法正常运行。请参见下图。

Wrong Status Showing

这是我的代码

$total_amount = $row->total;
$paid = $row->paid_amount;

if($paid > '0.00'){
 echo '<span class="label label-warning">Partial</span>';   
} elseif($total_amount != $paid) {
 echo '<span class="label label-primary">Unpaid</span>';
} elseif($total_amount == $paid ){
 echo '<span class="label label-success">Paid</span>';
}

请帮助我解决此问题。这是我的学校项目,需要明天提交。

1 个答案:

答案 0 :(得分:1)

比较浮点数通常存在问题,因为存在精度问题。 if / elseif语句的顺序还有其他问题。这些语句将自上而下执行,仅输入第一个匹配的块。我将如下更改您的代码以舍入您的值,重新排列if语句并与<>=进行比较:

$total_amount = round($row->total, 2);
$paid = round($row->paid_amount, 2);

if ($paid <= 0){
  echo '<span class="label label-primary">Unpaid</span>';
} elseif ($paid < $total_amount) {
  echo '<span class="label label-warning">Partial</span>';   
} elseif ($paid >= $total_amount) {
  echo '<span class="label label-success">Paid</span>';
}
相关问题