跳至主要内容

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 就一直延續到了現代所有的試算表軟體當中。