为什么以下语句在为TRUE时返回FALSE值?
= IF(ABS((115.43) - (171 - 21.38 - 34.2))< = 0.01,TRUE,FALSE)
115.43 - 115.42 = 0.01
有趣的是,当阈值编辑为0.02时,输出为True。我使用的是Excel 2010。 感谢任何帮助! :)
答案 0 :(得分:1)
这与浮点数以二进制表示的方式有关。当我在VBA中评估115.43 - 115.42
时,答案是1.00000000000051E-02
。
Here's以Java为中心的帖子处理基本上相同的问题,但简短的回答是,当简单的数学告诉你它应该时,你不应该期望一个表达式精确地评估为0.01。