「10% + 10% = 0.2」非標準答案?手機電腦計數原來部部有不同?

撰文:黃正軒
出版:更新:

10% + 10% = ? 可能好多朋友會反射性地回答「0.2」。但不妨花幾秒用手機上的計數機App算算,答案跟好多朋友所想的完全不同。計數機沒有錯,錯的反而是我們嗎?

近日「10%+10%」問題成為中國網絡熱話,在微博上以「#手機計算器全線陣亡」之hashtag為題群起討論。大多數人認同答案是「0.2」;但網民發現不同品牌的手機計數機App得出結果卻都是「0.11」。

中國《電子工程專輯》以iPhone、Oppo、華為Honor及小米MI的計數機App計算結果:

(電子工程專輯 eet-china.com)

台灣《科技新報》以ASUS、Sony、Google Pixel及iPhone的計數機App計算結果:

(科技新報 technews.tw)

記者以iPhone XR之計數機App實測之結果:

(iPhone XR擷圖)
(科技新報 technews.tw)

只有macOS得出「0.2」的「正確」答案(見左圖)。不少大陸網民甚至IT人起先認為是手機計數機的bug,這實際上可能是計數機處理符號的邏輯差異所致。

「普通計數機」和「科學計數機」,數理邏輯有分別。一般人運數或使用科學計數機,會按「先乘除後加減」法則,從算式「10%+ 10% = 0.1 + 0.1」而得出「0.2」的結果。然而,手機的計數機App為普通計數機,會按連續百分比計算,從算式「10% +(10%×10%)= 0.1 + 0.01」而得出「0.11」的結果。

即睇手機「連續百分比」算式拆解。記者在iPhone XR計數機App輸入「10%」,系統自動將之轉變成「0.1」:

在iPhone XE計數機App輸入「10%」,系統自動將之轉變成「0.1」。(iPhone XR擷圖)

輸入「+ 10%」指令,系統自動將之演繹為「+0.01」。此數值為「10%×10%​(即0.1 x 0.1)」的結果:

輸入「+ 10%」指令,系統自動將之演繹為「+0.01」。此數值為「10%×10%​(即0.1 x 0.1)」的結果。(iPhone XR擷圖)
(科技新報 technews.tw)

簡單講,多數手機的計數機App是增幅的,把「A+10%」理解成「A+(A×10%)」而不是「A+0.1」。Windows 10內建計數機亦是如此。分別是,手機計數機App把起始數字理解為1;Win 10計數機則默認為0。

Win 10計數機的增幅邏輯,在算式加長、加減運算時更為顯著。若計算「1+10%+10%」,在「A+(A×10%)+〔A+(A×10%)〕*10%」的邏輯下,會變成「1 + (1x10%)+〔1+(1x10%)〕*10%」:

「1 + 0.1 + 0.11」最後得出1.21的結果:

「1 + 0.1 + 0.11」最後得出1.21的結果。(電腦擷圖)

大陸網民測試,發現華為、蘋果、OPPO多默認採用「A+Ax10%」的邏輯得出「0.11」答案。小米情況較複雜,在科學計算機App下有些用戶顯示結果是「0.2」,有些依然顯示為「0.11」。而魅族、錘子(Smartisan)、努比亞(Nubia )等少數機型則得出「0.2」:

大陸網民測試,發現華為、蘋果、OPPO多默認採用「A+Ax10%」的邏輯得出「0.11」答案。(電子工程專輯 eet-china.com)

為何多數手機計數機App的邏輯會如此運作?大陸網民議論紛紛,有人認為不是bug而是刻意設計。對此,幾位中國手機品牌高層也發表睇法。

華為榮耀(Honor)業務部總裁趙明(George)解釋此數理邏輯是為了方便而設,他的博文說:「實際上這有一個背景,就是算小費等特殊場景,很多國家餐廳吃飯給10-20%的小費,這時100+10%相當於100+100*10%,相當方便的一種人性化設計。」

華為榮耀(Honor)業務部總裁趙明(George)解釋手機計數機的「奇特」數理邏輯是為了方便而設。(電子工程專輯 eet-china.com)

簡單而言,香港也有不少食肆收取「加一」服務費。假設一餐飯埋單200元,在手機計數機App輸入「200+10%」便能得出「200+(200×10%)」的「加一後」結果。同理在計算折扣時,當標價寫着「20% OFF」(即八折),只要在機計數機App手輸入「200-20%」便能獲得折扣後的價錢。

「那麼到中國要不要改過來呢?」趙明於微博上徵求網民意見。 魅族高層華海良如此分析:「這個話題引發了不少討論,其實本質上並不是對或錯的問題,我們只是考慮的更多,增加了人性化的算法判斷。10%+10%= 0.11這個是國外的使用邏輯,而國內的算數邏輯是10%+10%=0.2,所以我們針對不同地區的固件做了不同的算法判斷。」

小米高層小凡解釋,該公司曾將手機計數機App改為「10%+10%=0.2」之運算方式,但中國用戶從未依賴使用「%」號,反而更傾向自行轉換直接輸入「0.1」計算。為了方便國外用戶使用,最終小米還是決定遵循全球標準改回「10%+10%=0.11」方式。由於有過如此更改,據了解目前仍有部份小米舊手機計數機App仍遵從舊邏輯,就如圖中博文的例子。(電子工程專輯 eet-china.com)

引申華海良的「文化差異」說法,手機又好,人類又好也沒有計錯數,不用重返小學讀百分比。只不過我們計數習慣了遵循「先乘除後加減」的原則;手機的非科學計數機App則作連續百分比計算。

只是手機的計數機App傾向連續百分比計算的源起為何呢?小米產品總監、MIUI體驗總負責人小凡嘗試解答此「歷史思考題」。

小米產品總監、MIUI體驗總負責人小凡指出「10%+10%」是目前全球標準的計算邏輯。最早的電子計數機並沒有%,是後來加入。(電子工程專輯 eet-china.com)

小凡指出「10%+10%」是目前全球標準的計算邏輯。最早的電子計數機並沒有%,是後來加入。作為後續改進,它一定程度上解決了計算場景中的「常用痛點」。小凡推測很可能是在西方人計算折扣、小費、利息等場景時,如此計算邏輯會很實用。

小米曾將手機計數機App改為「10%+10%=0.2」之運算方式,但中國用戶從未依賴使用「%」號,反而更傾向自行轉換直接輸入「0.1」計算。為了方便國外用戶使用,最終小米還是決定遵循全球標準改回「10%+10%=0.11」方式。由於有過如此更改,據了解目前仍有部份小米舊手機計數機App仍遵從舊邏輯,會得出「0.2」的結果。