谢谢你查看我的问题。
今天我在Excel中闲逛工作,遇到了一些涉及Excel的浮点运算和布尔测试的异常行为。这是我制作的Excel文件测试用例的链接。
为了排除故障并获得更多洞察,我查看了这些页面:源1,源2是Chip Pearson关于Excel浮点精度的帖子,第三个源是Wikipedia关于Excel精度的文章(不能发布2个以上的链接)由于声誉。对不起,我是新来的)。
缺点是单元格A2:A4,A10:A12,I2:I4和I10:I12都具有完全相同的完全相同的顺序,即A2 = I2 = A10 = I10,..., A4 = I4 = A12 = I12。但是,布尔测试用于检查对不同范围内的相同值的算术运算是否不会产生相同的结果。
我认为这是由于浮点精度,但范围中的数字完全相同。因此,任何浮点错误都应该(我认为)在范围内相同地表现出来。
最后,单元格的格式都相同。所以这不应该影响结果。
如果你们都知道造成这种行为的原因,我真的很想听听。这个问题让我傻眼了!
我已经概述了我在下面创建文件所采取的确切步骤(以帮助我的Excel文件不清楚时的可重复性)。
我的问题如下:
- 我计算了6600 / 14,4400 / 14,22 / 14,并将结果作为值复制粘贴到单元格A2:A4中。
- 我输入了布尔测试的公式到单元格A7:C7。
2A。A7的'A2 = A3 +
A4'2b。B7的'A3 = A2 -
A4'2c。C7有'A4 = A2 - A3' - 我将公式的文本版本(为了便于阅读)键入单元格A6:C6
- 我在单元格A8中输入了以下公式:C8
4a。A8有'A3 +
A4'4b。B8有'A2 -
A4'4c。C8有'A2 - A3' - 我将其复制粘贴为值并将结果从A8:C8转换为A10:A12。
- 然后,我使用A10:A12中的值重复步骤2-4。
- 输入每个单元格A2:A4,A10:A12并复制该值,然后将其粘贴到记事本中。
- 我将这些值粘贴到单元格I2:I4,I10:I12中
- 对于范围I2:I4和I10:I12,执行步骤2 - 4的布尔测试。
floating-point-gui.de/errors/comparison
—
Mokubai
嘿Mokubai,问题不在于我对浮点数的理解。通过大学课程和自己阅读,我已经非常广泛地介绍了这个主题。
—
帕特里克
很公平,我不知道你的背景,只是觉得它可能是有趣的阅读。在我看到下面的答案之前张贴。
—
Mokubai