【问题标题】:Apparent Excel calculation error inside IF statement [duplicate]IF语句中出现明显的Excel计算错误[重复]
【发布时间】:2018-12-04 14:35:32
【问题描述】:

我希望你们中的一些人能帮助我理解这里发生了什么,因为我很困惑。

我在 Windows Excel 工作表中有两个单元格 BH284 和 BH287。

当我查看两个单元格时,值与最后一位相同(20 多位)

= BH284 ;输出=46.25165516264020000

= BH287 ;输出=46.25165516264020000

当我减去它们时,我得到零:

= BH284-BH287 ;输出=0

我的问题是我在一个单元格中有这个 IF 语句,当减去两个单元格时输出不同的值:

= IF((BH284-BH287)

我有什么遗漏吗?它是否与数值精度有关?提前致谢。

在 Windows 7 Enterprise 服务包 1 上运行的 Excel 版本 14.0.7214.5000(32 位)。

【问题讨论】:

  • 你得到了零,但那是因为 Excel “有用”地将接近零的结果变成了真正的零——但只是有时。 This article 一般描述 Excel 中的 FP,但还有另一个(令人讨厌的是,我现在找不到)描述了舍入到零的行为,旨在减少减去“相等”数字时的意外,但可能导致在没有发生这种情况的表达式中会出现更多惊喜。

标签: excel precision numeric


【解决方案1】:

是的,您在两个不同的单元格中计算了相同的数字并达到了数值精度。评论中的 Pearson 链接提供了详细信息。

如果您想避免这种情况,有(至少)两种选择:

1) 将单元格格式化为数字(例如 0.00),结果将显示为零。

2) 使用 Round(BH284-BH287,8) 这会将结果截断到小数点后 8 位。通常这不会显着改变您的计算结果。在再次遇到同样的问题之前,您可以转到 13 或 14 位数字...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    • 2023-03-24
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    相关资源
    最近更新 更多