前言
细心的小伙伴会发现,VBA中的ROUND函数,与工作表中的ROUND函数是有区别的,VBA中是采用的“四舍六入五成双”的规则,下面详细讲一下这是个什么规则。
什么是四舍六入五成双
“四舍六入五成双”,也叫“四舍六入五凑偶”,这里“四”是指≤4 时舍去,'六'是指≥6时进上,'五'指的是根据5后面的数字来定,当5后有有效数字时,舍5入1;当5后无有效数字时,需要分两种情况来讲:①5前为奇数,舍5入1;②5前为偶数,舍5不进。(0是偶数)
举个例子来讲,比如3.1451和3.145这两个数字,要保留两位小数,如果按四舍五入的规则,直接逢5进一就行了,结果均为3.15,而如果采用“四舍六入五成双”规则,结果则不同:
因为采用“四舍六入五成双”规则,要先看5后面一位,3.1451中,5后面是1,所以舍5进1;3.145中,5后没有有效数字,所以要看5前面一位,这里是4,为偶数,奇进偶不进,所以5就直接被舍去了。所以3.145的结果是3.14,而3.155的结果是3.16。
人生本来就很艰难了,为什么要搞这么复杂呢?为什么不直接用四舍五入呢?这是因为从统计学的角度,“四舍六入五成双”比“四舍五入”要科学,在大量运算时,它使舍入后的结果误差的均值趋于零,而不是像四舍五入那样逢五就入,导致结果偏向大数,使得误差产生积累进而产生系统误差,“四舍六入五成双”使测量结果受到舍入误差的影响降到最低。
例如:
1.15 1.25 1.35 1.45=5.2
若按四舍五入取一位小数计算:
1.2 1.3 1.4 1.5=5.4
按“四舍六入五成双”计算:
1.2 1.2 1.4 1.4=5.2
舍入后的结果更能反映实际结果。
那VBA中如何四舍五入
大部分情况下,我们只要四舍五入就够了,那么写VBA代码时,我们怎么办呢?
我们可以采用以下两种方法,一是调用工作表函数,二是采用取整法:
从效率角度出发,推荐采用取整法。
联系客服