Excel 这些计算结果的细微差别:有人知道为什么(只是出于兴趣)?
我在做一个“两个数字之间的百分比变化”计算,我最初写为(使用Excel 2013): 我把它改成:Excel 这些计算结果的细微差别:有人知道为什么(只是出于兴趣)?,excel,formulas,Excel,Formulas,我在做一个“两个数字之间的百分比变化”计算,我最初写为(使用Excel 2013): 我把它改成: =NEW NUMBER/OLD NUMBER -1 。。用一个大的电子表格来测试它是否更快。像我经常做的那样,我检查生成的数字是否都相等(使用强制的CellColX=CellColYformula),其中大约80%是相等的,但其他数字不是相等的——数量很少。我在Evaluate Formula工具中观察了该操作,并将单元格中的小数点扩展到返回所有0的位置 例如,OLD NUMBER=10.44和
=NEW NUMBER/OLD NUMBER -1
。。用一个大的电子表格来测试它是否更快。像我经常做的那样,我检查生成的数字是否都相等(使用强制的CellColX=CellColY
formula),其中大约80%是相等的,但其他数字不是相等的——数量很少。我在Evaluate Formula工具中观察了该操作,并将单元格中的小数点扩展到返回所有0的位置
例如,OLD NUMBER=10.44
和NEW NUMBER=10.86
使用第一种方法解析为0.040229880574713
,使用第二种方法解析为0.040229880574712
但是,OLD NUMBER=13.17
和NEW NUMBER=10.44
使用任一方法解析为-0.207289293849658
(旧的和新的数字是真正的2位小数。)
主要是为了强迫症,有没有已知的原因?对于非常敏感的计算有什么意义吗
有没有已知的原因
如评论中所述,是:
与其他电子表格一样,Microsoft Excel的精度有限,因为它只保留一定数量的数字来描述数字(精度有限)。默认情况下,Excel名义上使用8字节的数字,这是IEEE 754规范[1]的1985年修订版(除数字外,Excel还使用其他一些数据类型。[2]),尽管Excel可以显示30位小数,但其指定数字的精度仅限于15位有效数字,由于三个问题,计算的精度可能更低:舍入、[3]截断和二进制存储
(来自)
对于非常敏感的计算有什么意义吗
同样是的,我建议不仅仅是非常敏感的计算,而是经常在计算中涉及非常大或非常小的数字。然而,由于正常比例尺的“非常大”和“非常小”处于天文或解剖学水平,Excel用户很少遇到它们。尽管有很多这样的例子(如和)
正如您所注意到的,这些近似值经常导致问题的地方是在比较中。如果没有四舍五入(数学上)应该相同的结果,则可能不相同,
=EXACT
或just=
可能会错误地返回FALSE
。请参见,这也有助于解释它。谢谢你的指点。我怀疑我所做的任何事情都会受到它的影响。
=NEW NUMBER/OLD NUMBER -1