php 值使用number_format函数后计算错误

前言

tips:如果本文对你有用,请爱心点个赞,提高排名,让这篇文章帮助更多的人。谢谢大家!比心❤~
如果解决不了,可以在文末加我微信,进群交流。

在工作中有个金额数值累加的需求,正常的循环进行计算的时候,发现值总是为1.具体代码如下:

错误代码

<?php

$total_amount = 0;
foreach ($list as &$item){
    $item['num'] = $item['num'];
    $item['jd_price'] = number_format($item['jd_price'],2);
    $item['total_price'] = number_format($item['num'] * $item['jd_price'],2);
    var_dump($item['total_price']); // echo string(8) "1,365.15"
    var_dump($total_amount); // echo int(0)
    $total_amount += $item['total_price'];
    var_dump($total_amount); // echo int(1),此处期望值为 1,365.15
}

解决方案
使用number_format()的时候需要规避这样的错误,需要对千分位的符号进行规定,也就是传入第4个参数。

$total_amount = 0;
if(!empty($list)){
    foreach ($list as &$item){
        $item['num'] = $item['num'];
        $item['jd_price'] = number_format($item['jd_price'],2);
        $item['total_price'] = number_format($item['num'] * $item['jd_price'],2,'.','');
        var_dump($item['total_price']); // string(8) "1,365.15"
        var_dump($total_amount); // int(0)
        $total_amount += $item['total_price'];
        var_dump($total_amount); // float(1365.15)
    }
}

有问题请添加个人微信:【mengyilingjian】,进群一起技术讨论。添加时请备注来意,谢谢!
在这里插入图片描述
在这里插入图片描述

相关推荐
©️2020 CSDN 皮肤主题: 点我我会动 设计师:白松林 返回首页