阅读文章

Excel 2007现bug 乘法计算结果偏爱100000

[日期:2007-10-15] 来源:  作者: [字体: ]

  

  Excel 2007里存在一个重大bug,会将850*77.1错误地计算为100000,而不是65535。而且850*77.1并不是一个特例,不信你可以在Excel 2007里计算下边这些乘法:

  =5.1*12850

  =10.2*6425

  =20.4*3212.5

  =40.8*1606.25

  =154.2*425

  =212.5*308.4

  =308.4*212.5

  =425*154.2

  结果都是100000吧?

  这个看起来有些不可思议的问题很快得到了多名专家的确认,Excel MVP Bernad Leingme更是第一个站了出来。

  事实上,问题出现在65535这个数字上。虽然现在还没能最终肯定到底是什么原因,但考虑到65535这个数字的特殊性(转换成二进制就是1111111111111111),初步怀疑Excel 2007在浮点计算或者舍入误差方面出现了失误。另外还可以看出,出错的乘法公式中至少有一个数字带有一位小数。

  更进一步地,如果把上述乘法之一放在A1单元格里,然后A1+1就会返回100001,A1*1返回100000,A1/1返回100000。这些无疑都是错误的,因为Excel 2007已经把A1的值当成了100000,不过奇怪的是,A1*2返回的却是正确的131070,A1-1也是65534没错,A1/2也准确得到了32767.5。Excel 2007如此反复无常的确令人难以琢磨。

  测试还表明,office 2000/XP/2003等旧版本都不存在这个bug,看来只是office 2007的新“专利”了。

  出现这么低级的bug,微软工作人员开发和审核至少可以说是百密一疏。

Excel 2007重大bug:850×77.1=100000

Excel 2007重大bug:850×77.1=100000



阅读:
录入:blue1000

评论 】 【 推荐 】 【 打印
上一篇:教你简单的技巧 快速完成Excel操作
下一篇:在Excel 2007中用图形创造出水印效果
相关文章      
本文评论
发表评论


点评: 字数
姓名:

  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款