前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >php 高精确度运算 - bc函数

php 高精确度运算 - bc函数

作者头像
崔哥
发布2023-04-03 09:38:47
4330
发布2023-04-03 09:38:47
举报
文章被收录于专栏:崔哥的专栏崔哥的专栏

项目中存储金额一般用int(分),或者decimal(8,2),如果用 decimal 会涉及到精度问题。比如:比较字符串0.010哪个大,结果是一样大,因为php会把0.01强转为0,这就不符合预期了

代码语言:javascript
复制
#两个任意精度的数字除法计算
bcdiv('200', '100', 2);//分转元,200/100

#比较两个任意精度的数字
bccomp($price, $step, 2)
#两个任意精度数字的加法计算
bcadd($price, $step, 2)
#两个任意精度数字的减法
bcsub($price, $step, 2)
//将两个任意精度数字相乘
bcmul($sku->price, (string) $orderGoods['num'], 2);

例子:根据传过来的金额返回价格上下10元的金额

代码语言:javascript
复制
        $step = '10.00';
        if (bccomp($price, $step, 2) !== 1) {
            $start = '0.00';
        } else {
            $start = bcsub($price, $step, 2);
        }
        $end                      = bcadd($price, $step, 2);
        $params['price']          = [$start, $end];
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档