PHP:比较金额

时间:2013-10-07 19:59:05

标签: php comparison operators constants

我有一个最小交易金额的常数。

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。

注:

我已经尝试过将两者都转换为浮动而没有运气。

1 个答案:

答案 0 :(得分:0)

问题是{p> number_format()。这会返回string,这会导致比较问题。之后输入$trans_total,因为float因字符串中的逗号而无效。

一起删除number_format()就可以了。

感谢@Pj Dietz。