最近在做公司平台与微信平台的财务对账,之前公司的手续费一律采用交易金额*费率四舍五入后取两位小数。官方描述如下:

在做后台统计手续费时,我也就使用了round(金额*费率,2), 拿出一个月的流水做了检验,发现统计数据正确后上线。
然而,三个月后客户反馈,我们平台数据与微信平台对账数据有出入,相差一分钱。
经过一系列排查后,发现...
bug1:
有一订单为151.92,手续费:151.92*0.003=0.45576,四舍五入后为0.46;此单被拆分为三次退款,金额都为50.64,平台算出微信退返手续费为50.64*0.003=0.15192, 每笔四舍五入后0.15。因此相差一分钱!
bug2:
有一退款金额为15,费率也是千三,手续费应该为15*0.003=0.045,四舍五入0.05;而微信平台查账则为0.04元。
why?why?why?
深入了解微信手续费规则后,微信有如下说明;

原来是酱紫。。。
部分编程语言round函数的解读不同
C#:

php:
需要加入第三个参数,配置成银行家舍入(四舍六入五取偶)
网友评论