ROUND_HALF_EVEN为什么以及如何在一系列计算中重复应用时最小化累积误差?

时间:2009-04-27 04:25:08

标签: java rounding

我被告知ROUND_HALF_EVEN是用于财务数据计算的优惠舍入模式。我很想知道这种舍入模式为什么以及如何减少javadoc BigDecimal 1.4.2中所述的累积误差。 谢谢, 迪安

3 个答案:

答案 0 :(得分:9)

来自Wikipedia

  

尽管有四舍五入的习惯   数字4.5到5,实际上4.5是没有   接近5而不是4(它是0.5   远离两者)。处理时   大套科学或   趋势所在的统计数据   重要的,传统的四舍五入   平均数据向上偏差   略。在一大堆数据上,或   当很多后续的四舍五入   操作以数字方式执行   信号处理,圆到均匀   规则倾向于减少总数   舍入误差,(平均)a   相等比例的数字四舍五入   四舍五入。这一般   减少结果的向上倾斜。

答案 1 :(得分:1)

只是为了澄清,如果非小数部分是奇数,则“半舍入”舍入.5向上舍入。如果非小数部分是奇数,则将其向下舍入 - 即,到最近的事件编号。 / p>

所以4.5 - > 4,5.5 - > 6,6.5 - > 6,等等。

对于一组真正随机的十进制数,这种类型的舍入不会显着地向上或向下倾斜总数。因此,它在金融应用中被视为“公平”的舍入系统。

答案 2 :(得分:1)

我的印象与其他两个答案相同,即圆半 - 即使应用于随机数也同样可能向上或向下舍入,因此在大型数据集上没有预期的偏移量四舍五入。但据我所知,半圆甚至本身并没有什么特别之处;我认为,圆半奇(圆n.5到最接近的奇数)将具有相同的属性。与随机舍入策略相同,即n.5以50%的概率随机向上或向下舍入。