一、简单来说就是:
四舍、六入、五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一。
二、详细来说:
1:小于等于四,直接舍去该位
2:大于等于六,向前位进一
3:等于五
3.1:五后有数,向前位进一
3.2:五后全零
3.2.1:五前位数值为奇,则向前位进一(将前位凑成偶)
3.2.2:五前位数值为偶,则直接舍去该位
三、为什么要这样?直接四舍五入不香吗?
其实真的不香,我们从银行家的角度来看这个问题:
1、四舍五入算法里面的四舍:舍弃的数值:0.000、0.001、0.002、0.003、0.004,因为是舍弃,对银行家来说,就是不用付款给储户的,那每舍弃一个数字就会赚取相应的金额:0.000、0.001、0.002、0.003、0.004。
2、四舍五入算法里面的五入:进位的数值:0.005、0.006、0.007、0.008、0.009,因为是进位,对银行家来说,每进一位就会多付款给储户,也就是亏损了,那亏损部分就是其对应的10进制补数:0.005、0.004、0.003、0.002、0.001
因为舍弃和进位的数字是在0到9之间均匀分布的,所以对于银行家来说,每10笔存款的利息因采用四舍五入而获得的盈利是: 0.000 + 0.001 + 0.002 + 0.003 + 0.004 - 0.005 - 0.004 - 0.003 - 0.002 - 0.001 = -0.005 也就是说,每10笔的利息计算中就亏损0.005元,即每笔利息计算损失0.0005元
一句话来说,就是:抛去0不用算,该舍的只有4个数,该入的确有5个数,这样就会亏损。
四、如果用在电商中,有什么用处?
1、如果电商仅仅使用四舍五入法,那么上面第三条已经说了,会亏损。
2、我们在计算佣金分账时尤为明显,例如有一笔订单是100元的(一个小订单):
a、按比例分账,算出来有1元需要分账
b、这时候有两个用户要参与分账
c、张三的分账比例是67、5%,李四的分账比例是32.5%
d、计算分账结果:
d.1、张三:1 * 0.675 = 0.675
d.2、李四:1 * 0.325 = 0.325
e、我们都知道,有三位小数无法分账对吧,所以需要取两位小数点
下面我们分别进行两种算法尝试:
e.1 四舍五入:
e.1.1、张三:0.68
e.1.2、李四:0.33
如果按此方式进行分账,那么最终分的结果是 0.68+0.33 = 1.01,结果就是平台亏存了1分钱,因为多分账了0.01元
e.2、好,那么我们现在用《银行家舍入》来试试:
e.2.1、张三:0.68
e.2.2、李四:0.32 (五前为偶应舍去)
如果按此方法进行分账,那么结果就刚好是1元了(当然,也可以尝试一下修改分账比例,看看最终的结果是否正确)。
标签:舍入,四舍五入,0.004,金额,五前,分账,0.005,电商,0.003 From: https://www.cnblogs.com/phpyangbo/p/17706553.html