Excel2007闹笑话850×77.1=100000
有人在Google群中以Microsoft Office Excel为主题的新闻群中反映,Excel 2007存在重大bug,会将850*77.1错误地计算为100,000,而不是65,535。
当然,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
结果是10万对吧?
这个看似不可思议的问题很快得到了众多专家的证实,Excel MVP贝尔纳德·莱因梅(Bernad Leingme)第一个站了出来。
其实问题出在65535这个数字上。虽然我们还没有最终确定是什么原因,但是考虑到65535这个数字的特殊性(也就是1111111111111111111),我们初步怀疑Excel 2007出现了浮点计算错误或者舍入错误。另外,可以看出乘法口诀中至少有一位小数有错误。
此外,如果将上述乘法之一放在单元格A1中,则A1+1将返回100001,A1*1将返回100000,A1/1将返回100000。这些无疑是错误的,因为Excel 2007已经把A1的值取成了100000,但奇怪的是,A1*2返回的是正确的131070,A1-1也是65534。是的,A1/2也精确地得到32,767.5。Excel 2007这么任性,真的很难搞清楚。
测试也表明,在Office 2000/XP/2003等旧版本中不存在这个bug。似乎只是Office 2007的一项新“专利”。
出现这么低级的bug,显然是微软工作人员的开发和审核不严谨。至少可以说老版本的产品没有问题,这无疑会让微软更加尴尬。
0条评论