2007年9月27日 星期四

850 * 77.1 -- Bug in Excel 2007

850 乘上 77.1 等於多少?

有人發現了 Microsoft Excel 2007 的 bug,輸入 =850*77.1 以後的結果並不是正確的 65535,而是個神奇的數字。剛剛驗證過還真的是如此。google 850 77.1 可以找到一狗票的文章在講這件事,所以這篇純粹是錦上添花(耶?)而已。


值得注意的是不只這個算式會錯,其他有些組合也會,但又不是所有結果為 65535 的算式有錯。更有甚者,拿 =850*77.1 的結果放在 A1 拿去做運算會有不一致性,例如 =A1+1 後會變 100001,=A1*2 是 131070。這 bug 不知道是怎麼出來的。


某種角度來看,這是一件很恐怖的事:我們在用電腦做事時要怎麼確認他是對的?我們在寫程式的同時怎麼知道自己寫的是正確的?甚至怎麼知道用的函式庫、工具、環境是沒有 bug 的?就算人類比 Turing Machine 還偉大,此問題還是無解的吧...(想想看做了這麼多醫學實驗,最後因為 Microsoft Excel 一個小小(?)bug而功虧一簣。)


話說回來...怎麼發現這個 bug 的呀 !?


後記:Microsoft Excel 官方解釋

1 則留言:

Unknown 提到...

別擔心
反正自己寫的程式也絕不會沒 bug
大家蟲蟲一家親, 湊和湊和
就別在意這麼多了 XD