新媒易动态
NEWS CENTER
NEWS CENTER
2019-07-18
最近在做财务系统中遇到一个关于小数精度的问题:
我们知道计算机在订单结算信息的时候,是通过单条订单计算结算金额,然后整体汇总再给出结果。这样才能支持业务上需要从不同时间维度汇总数据的要求(每3天一结算,每7天一结算,每月一结算等)。但是,作为一个正常用户,我们并不会这么去计算,我们采用的是先汇总商品价格再计算结算金额的方法,如下方展示:
结算公式: 应结算金额 = 商品价格-商品价格*佣金比例
计算机: 计算订单1的应结算金额J1,计算订单2的应结算金额J2,计算订单3的应结算金额J3,然后汇总。
人工计算:计算订单1,订单2,订单3的商品价格汇总,再按照总的商品价格计算应结算金额。
我们刚开始对计算机计算的每一个J1,J2,J3都采取四舍五入的方法,发现最后和人工核对时算出的结果是不一样的,会有精度上的误差。计算机汇总的结果可能是4.56,而人工算的是4.57,那么怎么办呢?