我有一个最小交易金额的常数。
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。
注:
我已经尝试过将两者都转换为浮动而没有运气。
答案 0 :(得分:0)
number_format()
。这会返回string
,这会导致比较问题。之后输入$trans_total
,因为float
因字符串中的逗号而无效。
一起删除number_format()
就可以了。
感谢@Pj Dietz。