php 高精确度运算 - bc函数
导读:项目中存储金额一般用int(分 ,或者decimal(8,2 ,如果用 decimal 会涉及到精度问题。比如:比较字符串0.01和0哪个大,结果是一样大,因为php会把0.01强转为0,这就不符合预期了#两个任意精度的数字除法计算 bcd...
项目中存储金额一般用int
(分),或者decimal(8,2)
,如果用 decimal 会涉及到精度问题。比如:比较字符串0.01
和0
哪个大,结果是一样大,因为php会把0.01
强转为0
,这就不符合预期了
#两个任意精度的数字除法计算
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元的金额
$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];
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: php 高精确度运算 - bc函数
本文地址: https://pptw.com/jishu/792.html