科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Excel 2007闹笑话 850×77.1=100000

Excel 2007闹笑话 850×77.1=100000

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Google Group里一个以微软OfficeExcel为主题的新闻组里有人报告说,Excel 2007里存在一个重大bug,会将850*77.1错误地计算为100000,而不是65535。

作者:21tx 来源:21tx 2007年12月6日

关键字: 应用 技术 Excel Excel 2007 Office

  • 评论
  • 分享微博
  • 分享邮件

  Google Group里一个以微软OfficeExcel为主题的新闻组里有人报告说,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,微软工作人员开发和审核的不严谨是很显然的,至少可以说是百密一疏,尤其是旧版产品反而没有问题,无疑会让微软更加尴尬。

  

  

  

  

  

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章