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

Java 当在一系列计算中重复应用ROUND_HALF_时,为什么以及如何使累积误差最小化?,java,rounding,Java,Rounding,有人告诉我,舍入半舍五入甚至是金融数据计算中最受欢迎的舍入模式。我很想知道这种舍入模式为什么以及如何减少javadoc BigDecimal 1.4.2中所述的累积误差。 谢谢 院长来自: 尽管有四舍五入的习俗 数字4.5到5,事实上4.5不是 接近5比接近4(它是0.5 远离两者)。在处理 大套的科学或数学模型 统计数据,趋势在哪里 重要的,传统的四舍五入 平均值使数据向上偏移 轻微地在一大组数据上,或 当许多后续舍入 操作按数字方式执行 信号处理,由圆到平 规则倾向于减少总数 舍入误差(平均

有人告诉我,舍入半舍五入甚至是金融数据计算中最受欢迎的舍入模式。我很想知道这种舍入模式为什么以及如何减少javadoc BigDecimal 1.4.2中所述的累积误差。 谢谢 院长

来自:

尽管有四舍五入的习俗 数字4.5到5,事实上4.5不是 接近5比接近4(它是0.5 远离两者)。在处理 大套的科学或数学模型 统计数据,趋势在哪里 重要的,传统的四舍五入 平均值使数据向上偏移 轻微地在一大组数据上,或 当许多后续舍入 操作按数字方式执行 信号处理,由圆到平 规则倾向于减少总数 舍入误差(平均)为 四舍五入数的相等部分 四舍五入。这通常 减少结果的向上倾斜

为了澄清一下,如果数字的非小数部分为奇数,“四舍五入-偶数”则将.5向上舍入,如果非小数部分为奇数,则将其向下舍入-即,舍入到最近的事件数

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


对于一组真正随机的十进制数,这种舍入方式不会使总数显著上移或下移。因此,在金融应用中,它被视为一种“公平”的舍入系统。我的印象与其他两个答案相同,即舍入一半即使应用于随机数,也同样可能向上或向下舍入,因此在大数据集上,由于舍入,预计不会出现偏移。但据我所知,即使是圆一半本身也没有什么特别之处;我认为,四舍五入半奇数(n.5到最接近的奇数整数)具有相同的性质。与随机舍入策略相同,即n.5以50%的概率随机向上或向下舍入。

舍入半个奇数会导致略微偏离零。随机在小样本上产生“不公平”总数。此示例不正确。API文档中的应为:4.5->4,5.5->6,6.5->6:“舍入模式向“最近邻居”舍入,除非两个邻居距离相等,在这种情况下,向偶数邻居舍入。”