1/2+1=45660
· 閱讀時間約 2 分鐘
「1/2」加 1 等於多少?根據各大試算表軟體,答案是「45660」!
蛤?
試試看!打開 Google 試算表(或 Microsoft Excel、LibreOffice Calc、Gnumeric 都可以),在 A1 這一格輸入 ="1/2"
(字串「1/2」)。
然後,在 B1 這一格輸入 =A1+1
。
結果 B1 這一格出現的答案是「45660」!
為什麼?
這個有趣的現象是從這篇 Andrew Farkas 的文章看到的,他是 AI 試算表軟體公司 Quadratic 的開發者。
原來,當試算表看到字串 "1/2"
時,它並不是把它當作分數「二分之一」,而是自作聰明地解讀成「當時年份的 1 月 2 號」。所以當我們在 2025 年時輸入 "1/2"
,試算表就把它理解成了「2025 年 1 月 2 號」。
而試算表儲存日期的方式很直接粗暴:把每一天對應到一個數字。1900 年 1 月 1 號被設定為數字 1,然後每過一天,這個數字就加 1。
照這樣算的話,「2025 年 1 月 2 號」的對應數字應該是「45658」,再加 1 的話應該要是「45659」,可是為什麼我們得到「45660」呢?
那是因為古早古早的時候,有一個試算表軟體叫做 Lotus 1-2-3,當時的開發者誤以為西元 1900 年是閏年(但其實不是),所以把西元 1900 年的天數多算了一天。微軟的 Excel 為了保持跟 Lotus 1-2-3 的相容性,保留了這個 bug,然後這個 bug 就一直延續到了現代所有的試算表軟體當中。