数据库字段是decimal(7,2),后端插入时怎么对金额处理稳妥不会出错?

$money = 1500.668;
var_dump(sprintf("%.2f", $money)); //string(7) "1500.67"
var_dump(round($money,2)); //float(1500.67)

我所知道的这两种,不知哪种好,还有没有最稳妥的处理方法

focus
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 3
自由与温暖是遥不可及的梦想
floatval(bcadd($number, 0, 2))
1天前 评论

2种四舍五入的处理方式不同,sprintf("%.2f", $money)这种方式四舍六入五成双,建议转化为整数四舍五入再转化为小数

1天前 评论
Bill-Li

建议金额存到6位。

floatval(bcsub((string)$userBalance, (string) $amount, 6))
20小时前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!