Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Windows教程綜合 >> Windows資訊 >> Excel 2007驚現重大bug:850×77.1=100000

Excel 2007驚現重大bug:850×77.1=100000

日期:2017/2/7 11:51:52      編輯:Windows資訊

 

    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吧?

  這個BUG最先在Google Group裡一個以微軟Office Excel為主題的新聞組的報告被提及,這個問題很快得到了多名專家的確認,Excel MVP Bernad Leingme更是第一個站了出來。

Excel 2007驚現重大bug:850×77.1=100000

  事實上,問題出現在65535這個數字上。雖然現在還沒能最終肯定到底是什麼原因,但考慮到65535這個數字的特殊性(轉換成二進制就是1111111111111111,16位無符號整數能表示的最大值),初步懷疑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如此反復無常的確令人難以琢磨。

Excel 2007驚現重大bug:850×77.1=100000

  測試還表明,Office 2000/XP/2003等舊版本都不存在這個bug,看來只是Office 2007的新“專利”了。

  出現這麼低級的bug,微軟工作人員開發和審核的不嚴謹是很顯然的,至少可以說是百密一疏,尤其是舊版產品反而沒有問題,無疑會讓微軟更加尴尬。

Copyright © Windows教程網 All Rights Reserved