老師!我用計算機算 10% + 20% ,結果不是 30% 耶!而且顛倒過來算 20% + 10% ,結果又不一樣了!怎麼會這樣?
現代手機十分普及,幾乎每款手機都會內建自己的計算機,協助大家處理日常計算問題。如今程式與運算思維正流行,也讓數學課逐漸添加計算機教學。雖然考試仍然不會讓學生使用計算機,但我一有機會還是會讓學生瞭解計算機的操作方式。
前陣子學生詢問我有關使用計算機的題目,他說:「老師!我用計算機算 10% + 20% ,結果不是 30% 耶!而且顛倒過來算 20% + 10% ,結果又不一樣了!怎麼會這樣?」聽他描述的我,馬上拿起手機計算機確認。
這邊先介紹如何用計算機表達 10% 的數字,如果是手機的計算機(我以iPhone內建的計算機當作例子),先按數字鍵 1 和 0,接著再按下 % 的按鍵,就可以得到 10% 的數值,也就是 0.1。同理我們按下 20%,會得到 0.2。
學生問我的問題是,以前學到百分比符號時,我們如果要計算 10% + 20%,答案應該就是 30% 沒錯,換算成小數 0.1 + 0.2 則等於 0.3。那為何在計算機按下 10% + 20%,得到的卻是 0.12,是哪裡弄錯了嗎?
我照著學生的方式操作了計算機,想觀察究竟是發生了什麼事情。我發現,算式左邊的 10%,在計算機顯示出來的數字一樣是 0.1,但當我們按下 + ,再按下 20% 時,會看到螢幕當下顯示出 0.02 ,推論計算機把 20%當作是前面 10% 的 20% 了。接著按下 = 後,計算機會將 0.1 和 0.02 加起來,因此得到 0.12。這個推論應該是正確的,當我們交換順序,計算 20% + 10% 時,計算機會算成 0.2 + 0.2*0.1,得到 0.22 的結果,與我們的推論相符。
我在課堂上有和學生討論到兩數的加法具有交換律,簡單來說,就是 2 + 3 = 3 + 2,國中學到的任何數,都具有這樣的顛倒相加答案仍然一樣的性質。學生正是因為計算機的結果跟學過的知識相違背,因此,除了相加不等於 30% 的問題之外,也產生了以下的疑惑,「為何顛倒後計算起來不一樣,百分比符號轉換成小數,應該也有交換律對吧?」
這個問題其實也在剛才的討論裡得到解答,對計算機來說,百分比做相加,是會計算前一個數字的百分比的。
那麼也就產生另一個疑問,為什麼要這樣設計呢?
查了一些資料後,也聯想到這樣的計算方式很像餐廳收服務費。假設你今天到一間吃到飽火鍋店,消費了 500 元,通常在結帳時可能會需要多收 10% 的服務費,這個 10% ,就是你消費金額 500 元的 10%。與學生討論過後,我們認為對店員來說,他在結帳時會需要計算 500 + 500*10% 。而我們又很習慣直接訂下要加上幾%的服務費,舉例來說,口語表達為「加上10%服務費」。因此猜測計算機這樣的設計,對於需要計算服務費、小費、稅金等等這類常與百分比符號結合使用的項目,這樣的計算方式方便使用者按下按鍵,計算出正確的結果。
讀者不妨可以嘗試,計算機按下 「10 + 10%」,得到的結果會是 10 + 10*10% = 11,並不是 10.1,真的很神奇。