首页 > 单独文章 > 正文

Excel 2007中的计算问题

时间:2007-09-30 18:04:04 作者:officeba 【认证】
前段时间,有人暴出了Excel 2007(和Excel Services 2007)中一个关于计算的问题,该问题涉及到结果约为65535的计算。
例如,在Excel 2007的单元格中输入:
=77.1*850
=5.1*12850
=10.2*6425
=20.4*3212.5
等公式时,得到的结果为100000。
但并不是所有结果为65535的公式结果都有误,例如:
=65535*1
=16383.75*4
等公式的结果为65535。
上述这种情况只在Excel 2007中出现,在其它版本中并未发现。
据介绍,出现该问题是在Office 2007时间框架中对Excel计算逻辑变化所引入的。确切地说,Excel 2007在12种非常特别的情形下不正确地显示计算的结果(详见下面的介绍)。这里的关键是,问题的事实不在计算本身(存储在Excel内存中的计算结果 是正确的),只是显示在工作表中的结果不正确。例如,公式:
=850*77.1
在工作表中显示不正确的值,但是如果将结果乘以2,则会得到正确的答案131070。
可以在工作表单元格A1中输入公式=850*77.1,然后在单元格A1中输入公式=A1*2,A2中将显示正确的答案131070。
那么是什么导致了值的显示问题呢?Excel 2007可以存储9.214*10^18个不同的浮点数,引起这样的问题是在65534.99999999995和65535之间的6个浮点数以及在 65535.99999999995和65536这间的6个浮点数。事实上不能够直接输入这些数字到Excel中(因为Excel将在输入完15位数字后 四舍五入),任何返回这些结果之一的计算将显示上述的问题(如果计算的结果显示在单元格中的话)。
对于上述问题,Excel开发团队正在进行修复,并将进行广泛的测试,以避免引入其它的问题,特别是关于计算方面的问题。

相关文章

同类最新