“10% 10%”竟等于0.11手機自帶計算器出了Bug?手機運營商:與國内外不同運算邏輯有關。
今天,一件趣事在網上炸開了鍋:有網友在使用手機自帶的計算器時發現,輸入“10%+10%”後,得出的結果竟不是0.2,而是0.11。更讓人瞠目的是,蘋果、小米、華為等品牌無一幸免,僅有錘子、魅族兩款手機獨善其身。網友們紛紛質疑,這麼簡單加法問題都能算錯,手機上的計算器真的除了Bug?對此手機運營商表示,這與手機的運算邏輯有關,嚴格地說并非手機算法錯誤。
為了驗證網友的說法,記者分别用蘋果、小米、華為、榮耀、OPPO 等多款手機自帶的計算器進行了測試。在蘋果手機自帶的計算器上,依次輸入“10% 10%”,按下“=”後,結果竟真的顯示為“0.11”。随後,記者又用20%、30%等不同數字進行了相加測試,結果同樣出現了問題。在其他幾款手機的測試中,小米、華為、榮耀、OPPO 4款手機也是如此。隻有錘子、魅族兩款手機自帶計算器的計算結果為“0.2”。
有人猜測,是每次輸入“%”時,程序都會自動把前面的所有數放在一起做“%”的運算;也有人認為,計算器之所以得出的結果不同,區别在于非科學計算器和科學計算器——非科學計算器的計算邏輯,默認的連續百分比計算并非“10% 10%”,而是“10% (10%×10%)”。記者在小米手機的計算器中測試,“5 10%的結果為5.5”,“20% 10%的結果為0.22”,是符合這一猜測的。
今天上午,華為榮耀總裁趙明給出了另一種解釋,他在微博上表示:“國外盛行給應付費金額10%至20%不等的小費,這時按照國外的運算邏輯,比如餐費花了100元,還要再付10%的消費,用計算器計算100 10%,得出的結果110正是您需要付的餐費與小費之和。特别是數字不是整數時,這其實是國外一種方便計算的人性化設計。”榮耀手機的相關負責人介紹。
小米手機的工作人員向記者介紹,安卓計算器的運算邏輯認為100 10%裡面的10%是指100的10%,也就是10而不是0.1。這是一種國外的運算邏輯,而我國的運算邏輯認為10%就是指0.1。所以就出現了用手機計算100 10%得出的結果是110,而非100.1。由于現在所有國産手機都是基于安卓系統的設計的,這是手機自帶的運算邏輯,并非手機算法錯誤,因此國産手機大量中招也就不難理解了。 “如果手機廠商注意到了這個問題,要調整運算邏輯也是可以的。”小米手機的工作人員說,“對于這一BUG,此前已有小米網友反饋給了小米方面,目前小米已經進行了修正。” 打開小米手機的計算器,記者發現通過左下角的紅色按鈕可以在兩種模式中進行切換。普通計算器模式也會出現問題,但在切換到科學計算器模式後,輸入的10%就會自動被換算成0.1,計算結果也是完全正确的。
華為官方客服則在給客戶留言中的回複了應如何應對:“使用手機自帶計算器計算A±B%時,百分數B%作為加數或減數,不再表示B/100這個數字本身,而表示的是被加數或被減數A的B%,即A*B%。所以A±B%=A±A*B%。小編建議您可以将百分數換算成小數進行運算,如0.022 0.025,您也可以給百分數加上括号,如(2.2%) (2.5%)。”
作為少數計算正确的代表,魅族科技副總裁華海良也在微博解釋了這一現象的原理。“‘10% 10%=0.11’這個是國外的使用邏輯,而國内的算術邏輯是‘10% 10%=0.2’。”華海良表示,魅族手機計算器因為針對不同地區進行了針對性設置,所以可以正确計算“10% 10%”。“其實本質上并不是對或錯的問題,我們隻是考慮的更多,增加了人性化的算法判斷,針對不同地區的固件做了不同的算法判斷。”
來源:北京日報客戶端
作者:褚英碩、趙鵬、師悅
監制:陳岩、王遠
編輯:謝永利
流程編輯:王宏偉
,