手機計算器出錯?原因竟是......
近日,一則“手機計算器全線陣亡”的訊息登上各大熱搜榜。不少網友發現自己手機的計算器出現了一個錯誤:在手機計算器中輸入“10%+10%”後,得出的結果不是0.2,而是0.11。科技日報記者用自己的華為手機測試以後發現,得出的結果也是0.11。
有不少網友測試後發現,蘋果、華為、三星、OPPO、vivo、小米等多款手機給出的計算結果均為0.11,僅有國內的魅族、錘子、努比亞旗下機型最終的計算結果為0.2。
那麼,手機計算器究竟為什麼會犯這種低階錯誤呢?引發該錯誤的機制又是什麼?
按人類語義的理解,你去買東西,100元錢減去10%,那就是90元。早期的計算器就可以直接這樣寫100-10%。再比如,一隻股票股價10,增長了50%,可以直接寫10+50%。這麼設計更深層次的原因可能與早期計算器的按鍵數量有限,以及單步運算的性質有關。所以這也算是一個歷史遺留問題。
大多數手機計算器保留了這種特性。
所以小米,華為,OPPO,vivo的計算結果為:10%+10%就是0.11
事實上,手機計算器出現這種情況不能算是錯誤,這主要是因為非科學計算器和科學計算器,對輸入符號的理解不同。人在計算時,會尊重計算中加減乘除的優先順序,先做乘除再做加減,結果就是10%+10%=0.2。
然而,部分手機中的計算器APP按照非科學計算器的計算邏輯,則認為連續百分比計算,即“10%+10%”是按照10%+(10%×10%)的邏輯進行計算,於是便得出0.11的結果,所以最終結果與常識不符。這只是因為計算器使用的演算法邏輯不同,並不能算是計算錯誤。
非科學計算器的計算邏輯,預設的連續百分比計算並非“10%+10%”,而是“10%+(10%×10%)”。科技日報記者在小米手機的計算器中測試,“5+10%的結果為5.5”,“20%+10%的結果為0.22”,均符合這一計算邏輯。
華為榮耀業務部Quattroporte趙明:
實際上這裡有一個背景,就是在算小費等特殊場景,很多顧客在一些國家餐廳用餐後會給10%到20%的小費,這時在計算器中輸入“100+10%”就相當於“100+100×10%”,這樣就簡化了輸入步驟,是一種相當方便的人性化設計。
魅族科技副Quattroporte華海良
“其實,本質上這並不是對或錯的問題,我們只是考慮得更多了,增加了人性化的演算法判斷。‘10%+10%=0.11’這個是國外的使用邏輯,而國內的算數邏輯是‘10%+10%=0.2’,所以,我們的APP針對不同地區進行了不同的演算法判斷。”
看到這個新聞時,我一直在反思回想從小就開始學習數學速算,數學巧算技巧。為什麼開發人員會出現這樣“低階”錯誤呢?簡單計算何不自己來口算速算呢。
我們怎樣可以避免以後應用生活中的計算錯誤?
今天小編帶你脫離苦惱,從小開始奠定好的計算基礎~
連減&連除的速算技巧:
教孩子輕鬆速記乘法口訣表。
比如在9的手指速記中,唐老師教給孩子們一個非常巧妙的方法。
幾個9就蜷起哪根手指,例如2*9就蜷起第二根手指,然後在剩下的手指上標記數字。蜷起的那根手指左邊的數字是十位數,最右邊的數字是個位數。
△ 2*9的手指速記
-
1 #
-
2 #
輸入百分之10,先輸10在按百分號,第一個是0.1,第二次就是0.01,的確如此。
-
3 #
有什麼好爭論的,簡單點說0.1是一個數字,10%不是一個數字
說明這些大廠在細節上,反而沒有小廠用心,忘了嗎?之前改變語言為繁體,臺北歸屬地沒有備註中國,幾大廠全部淪陷,只有魅族幾個小廠沒淪陷,哎,要是小廠這樣,估計被輿論罵死,不知道現在大廠有沒有全部修復這個問題,