You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA Excel Round函数异常:特定小数位不符合银行家舍入问题

VBA Round()函数银行家舍入的异常问题咨询

VBA的Round()函数采用*银行家舍入(四舍六入五成双)*规则:当需舍入的数位为偶数时向下舍入,为奇数时向上舍入,这正是我需要的行为。但测试发现以下5个特殊情况不符合该规则:

Round(0.00015, 4) = 0.0001(预期为0.0002)
Round(0.000035, 5) = 0.00003(预期为0.00004)
Round(0.000075, 5) = 0.00007(预期为0.00008)
Round(0.000000015, 8) = 0.00000001(预期为0.00000002)
Round(0.0000000075, 9) = 0.000000007(预期为0.000000008)

我测试至20位小数仅发现这5个异常案例,想咨询:该现象是微软的错误还是有意设计?

此外,我需要银行家舍入的原因是避免计算矛盾:例如参考值1、指示值0.85,误差0.15,若采用常规四舍五入,保留1位小数后指示值0.9、误差0.2,求和得1.1与原参考值不符,而银行家舍入可避免此问题。

内容的提问来源于stack exchange,提问作者Dominik Schabikowski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 11:08:18