为什么以下语句在Excel 2010上应该为true时返回FALSE值?

时间:2018-04-20 10:07:40

标签: excel-formula excel-2010

为什么以下语句在为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。 感谢任何帮助! :)

1 个答案:

答案 0 :(得分:1)

这与浮点数以二进制表示的方式有关。当我在VBA中评估115.43 - 115.42时,答案是1.00000000000051E-02

Here's以Java为中心的帖子处理基本上相同的问题,但简短的回答是,当简单的数学告诉你它应该时,你不应该期望一个表达式精确地评估为0.01。