【发布时间】:2013-10-14 13:00:00
【问题描述】:
我有一个具有最低交易金额的常数。
define( 'MINIMUM_AMOUNT', 100.00 );
我有一个函数可以从数据库中提取事务并为转移做准备。我要求交易总额大于最小值才能继续。像这样:
foreach( $merchant as $merch ) {
......
foreach( $transactions as $trans ) {
$trans_total = number_format( $trans_total + $trans->amt, 2 );
}
if( $trans_total < MINIMUM_AMOUNT )
continue;
.....
}
显然缺少一些代码,但我想你明白这里发生了什么。我遇到的问题是,当我将计算出的总数与常量进行比较时,它返回为true,即使它不是,因此continue 被触发并且脚本的其余部分不运行。
我已经确认 $trans_total 多次大于 MINIMUM_AMOUNT,尝试了各种金额,甚至使用var_dump() 检查变量的type。我无法弄清楚问题是什么。
有什么想法吗?如果有帮助,我将在 LAMP 环境中运行最新版本的 PHP。
注意:
我已经尝试过将两者都进行类型转换,但没有运气。
【问题讨论】:
-
请展示一些演示问题的示例数据。
-
尝试将两者都转换为浮动?
-
你试过不使用
number_format()吗?将float与string进行比较可能不是您想要做的。 -
为什么不用 SQL
SUM()提高 trans_total? -
@djot 我可以,但我需要每一行。
标签: php comparison operators constants