无法获得总金额和已支付金额的状态。付费状态功能无法正常运行。请参见下图。
这是我的代码
$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>';
}
请帮助我解决此问题。这是我的学校项目,需要明天提交。
答案 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>';
}