切换到宽版2
  • 905阅读
  • 5回复

Excel 2007重大bug:850×77.1=100000 [复制链接]

上一主题 下一主题
离线bianyaqi
 

只看楼主 倒序阅读 使用道具 0楼 发表于: 2007-09-26
会用的鱼友试一下,真的很吓人啊,这表以后不敢做啦 M8j%bmd(,  
一个重大bug,会将850*77.1错误地计算为100000,而不是65535。 Byq4PX%B  
u7R:7$H  
当然,850*77.1并不是一个特例,不信你可以在Excel 2007里计算下边这些乘法: 3N%%69JN)  
NgH"jg-  
=5.1*12850 U)mg]o-VE  
=10.2*6425 KFxy,Z$-4  
=20.4*3212.5 A'(v]w  
=40.8*1606.25 7/^`y')  
=154.2*425 @k.j6LKbc  
=212.5*308.4 1%W|>M`  
=308.4*212.5 J*@(rb#G  
=425*154.2 w s(9@  
&Z Ja}5k!r  
结果都是100000吧? XHq8p[F  
CH h]v.V  
这个看起来有些不可思议的问题很快得到了多名专家的确认,Excel MVP Bernad Leingme更是第一个站了出来。 ,1>ABz  
G}.t!"  
事实上,问题出现在65535这个数字上。虽然现在还没能最终肯定到底是什么原因,但考虑到65535这个数字的特殊性(转换成二进制就是1111111111111111),初步怀疑Excel 2007在浮点计算或者舍入误差方面出现了失误。另外还可以看出,出错的乘法公式中至少有一个数字带有一位小数。 ;-Bi~XD  
^'"sFEV7RN  
更进一步地,如果把上述乘法之一放在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如此反复无常的确令人难以琢磨。 |cZKj|0>  
_Se~bkw?v  
测试还表明,Office 2000/XP/2003等旧版本都不存在这个bug,看来只是Office 2007的新“专利”了。 6fxf|R\  
,]ALyWGuX  
出现这么低级的bug,微软工作人员开发和审核的不严谨是很显然的,至少可以说是百密一疏,尤其是旧版产品反而没有问题,无疑会让微软更加尴尬。
?<@yo&)  
`9%Q2Al  
只看该作者 1楼 发表于: 2007-09-26
沙发没用呢我觉得WPS  office  2007可以不占地
离线hingming1407
只看该作者 2楼 发表于: 2007-09-26
板凳。
离线羿菲宝宝
只看该作者 3楼 发表于: 2007-09-27
头晕
离线bianyaqi

只看该作者 4楼 发表于: 2007-09-27
看来没什么人使用啊,就我这有  
离线hxzaw1314

只看该作者 5楼 发表于: 2007-09-27
我用不来。呵呵
快速回复
限100 字节
 
提到某人:
选择好友
上一个 下一个