这个没有亲自没试过
php7(PHP 7.3.2)的代码如下所示: 具体代码如下所示: $redis_arr['money'] = 3708; $moremoneyRes['money'] = 88.49; $moneyData['money'] = bcadd($redis_arr['money'],$moremoneyRes['money'],2); var_dump($moneyData['money']); 执行结果如下所示: php5(PHP 5.4.39)的代码如下所示: public function test2() { $redis_arr['money'] = 3708; $moremoneyRes['money'] = 88.49; $moneyData['money'] = bcadd($redis_arr['money'],$moremoneyRes['money'],2); var_dump($moneyData['money']); } 运行结果如下所示: $redis_arr['money'] = 3891.11和$moremoneyRes['money'] = 9.78也会有同样的问题。 解决方案用sprintf代替。 $moneyData['money'] = sprintf("%.2f",$redis_arr['money']+$moremoneyRes['money']); PHP 7.3.2和PHP 5.4.39用bcadd函数有精度计算的差异。