officeba > 单独文章


Excel 2007中的计算问题

前段时间,有人暴出了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开发团队正在进行修复,并将进行广泛的测试,以避免引入其它的问题,特别是关于计算方面的问题。

声明:欢迎各大网站转载本站文章,还请保留一条能直接指向本站的超级链接,谢谢!

时间:2007-09-30 18:04:04,点击:65824


【OfficeBa论坛】:阅读本文时遇到了什么问题,可以到论坛进行交流!Excel专家邮件:342327115@qq.com(大家在Excel使用中遇到什么问题,可以咨询此邮箱)。

【声明】:以上文章或资料除注明为Office自创或编辑整理外,均为各方收集或网友推荐所得。其中摘录的内容以共享、研究为目的,不存在任何商业考虑。如有任何异议,请与本站联系,本站确认后将立即撤下。谢谢您的支持与理解!


相关评论

我要评论

评论内容