在财务结算时,10w+ 的单子出现了 2 毛 8 的误差,老哥们有没有办法缩小误差?
场景:目前有一个10w+的订单,然后公司平台抽取管理费。费率是6.0445%。最后财务结算时出现2毛8的误差
前提: 金额单位都是‘分‘, 管理费率存储的单位是百万分之一
管理费计算公式:
/**
* 管理费算法
* @param integer $managerRate 费率
* @param integer $payMoney 输入金额
* @return integer
*/
function managerFree($managerRate, $payMoney)
{
//return bcdiv(bcmul($payMoney, $managerRate), floatval(1000000.0));
return round(($payMoney * $managerRate) / 1000000);
}
上面两张方法都试过了。有没有这方面有经验的老哥哥。
推荐文章: