9月3日,話題“手機(jī)計(jì)算器全線陣亡”登上熱搜榜,消息稱蘋果、華為、小米、OPPO等各廠商手機(jī)計(jì)算器都出現(xiàn)了神奇的bug,不少手機(jī)計(jì)算機(jī)計(jì)算“10%+10%”時(shí),得出的結(jié)果是0.11,而不是正確答案0.2。 業(yè)內(nèi)人士隨后展開科普,表示這看起來是個(gè)Bug,但最終結(jié)果其實(shí)是計(jì)算器處理運(yùn)算符號(hào)的邏輯所導(dǎo)致。
iPhone X max、OPPO、華為榮耀、小米手機(jī)測試結(jié)果
有網(wǎng)友用iphone X、iphone X max、華為mate 20 pro等機(jī)型測試都出現(xiàn)類似情況,比如“30%+20%”得出結(jié)果為0.36,“50%+50%”得出結(jié)果分別為0.75。
有網(wǎng)友還測試了下Windows 10上的計(jì)算器,在標(biāo)準(zhǔn)情況下,10%結(jié)果是0。在科學(xué)計(jì)算器模式下,并沒有給出%的符號(hào)。
業(yè)內(nèi)人士稱,這是普通計(jì)算器和科學(xué)計(jì)算器的區(qū)別,人計(jì)算時(shí),會(huì)優(yōu)先考慮加減乘法的優(yōu)先級(jí),先做除法再做加法,結(jié)果就是(10%)+(10%)=0.2。
如果是非科學(xué)計(jì)算器的計(jì)算邏輯則是認(rèn)為連續(xù)百分比計(jì)算,即10%+10%按照10%+(10% x 10%)邏輯計(jì)算得出0.11的結(jié)果。
簡單來說,部分手機(jī)計(jì)算器會(huì)默認(rèn)把A+10%理解成A+Ax10%,而非A+0.1,對(duì)于截然不同的結(jié)果,網(wǎng)友們也是議論紛紛。
一時(shí)間,網(wǎng)友們拿起自己的手機(jī)開始算了起來,不過結(jié)果基本都是0.11,當(dāng)然也有個(gè)別手機(jī)例外。
在網(wǎng)友的測試中,華為、蘋果、OPPO、小米多默認(rèn)采用A+Ax10%的邏輯給出答案,其中小米在科學(xué)計(jì)算器下,有的用戶顯示結(jié)果是0.2,有的依然顯示為0.11。而魅族、錘子、努比亞等少數(shù)機(jī)型未“躺槍”。
手機(jī)企業(yè)高管怎么看?
9月3日上午,華為榮耀業(yè)務(wù)部總裁趙明就此發(fā)表個(gè)人觀點(diǎn),他解釋到:“實(shí)際上這有一個(gè)背景,就是算小費(fèi)等特殊場景,很多國家餐廳吃飯給10-20%的小費(fèi),這時(shí)100+10%相當(dāng)于100+100*10%,相當(dāng)方便的一種人性化設(shè)計(jì)”。
趙明也在其微博上積極征求網(wǎng)友意見:“那么到中國要不要改過來呢?”。
魅族華海良對(duì)此的解釋是,“這個(gè)話題引發(fā)了不少討論,其實(shí)本質(zhì)上并不是對(duì)或錯(cuò)的問題,我們只是考慮的更多,增加了人性化的算法判斷。10%+10%=0.11這個(gè)是國外的使用邏輯,而國內(nèi)的算數(shù)邏輯是10%+10%=0.2,所以我們針對(duì)不同地區(qū)的固件做了不同的算法判斷。”
小米產(chǎn)品總監(jiān)、MIUI體驗(yàn)總負(fù)責(zé)人小凡也在微博進(jìn)行了回應(yīng)。他指出,“10%+10%”是目前全球標(biāo)準(zhǔn)的計(jì)算邏輯,最早的電子計(jì)算器并沒有%,是后來加入的。作為后續(xù)改進(jìn),它一定程度上解決了計(jì)算場景中的常用痛點(diǎn),特別是在西方人計(jì)算折扣、小費(fèi)、利息等場景時(shí),這樣的計(jì)算邏輯會(huì)變得無比實(shí)用。
最后,@MIUI小凡 還發(fā)文《手機(jī)計(jì)算器全線陣亡終結(jié)貼》,詳細(xì)的科普了為什么計(jì)算器會(huì)出現(xiàn)這樣的運(yùn)算結(jié)果,以下是全文:
鑒于昨日計(jì)算器百分號(hào)引發(fā)了大型社會(huì)懸疑,10%+10%居然=0.11,這究竟是代碼的扭曲還是教育的淪喪,讓我替大家揭開真相。
看一些文章幾百字也沒把道理說太清楚。鑒于超強(qiáng)的歸納+化繁為簡的表達(dá)=聰明才智的體現(xiàn),我嘗試用一句話說清運(yùn)算原理。以8+10%為例,為什么=8.8而不是8.1?一起讀:8元錢,加上10%的小費(fèi),一共是8.8元。
以上就是目前全球標(biāo)準(zhǔn)的計(jì)算邏輯,但還有一個(gè)大家疑惑的問題:為什么計(jì)算邏輯要這么設(shè)計(jì)?于是這變成了一個(gè)歷史思考題。
最早的電子計(jì)算器并沒有%,是后來加的。作為后續(xù)改進(jìn),它一定解決了計(jì)算場景中的常用痛點(diǎn)。我推測很可能是西方人計(jì)算折扣、小費(fèi)、利息等常見場景。
貨物560元,20% OFF(打八折)多少錢?560-20%=448!
資方存入2800元,計(jì)年息6%,本息總計(jì)多少?2800+6%=2968!
是不是一下子好用到爆。But,為啥我前面加了一個(gè)“西方人的計(jì)算場景”呢?因?yàn)槲矣X得對(duì)于算力過剩的中國人,很少人會(huì)這么思考和輸入。
貨物560,砍兩成就是560*0.8=448;2800,6%年息,就是2800*1.06=2968。就是這么屌!直接省去了一步(國人這么優(yōu)秀我TM能怎么辦)
所以百分號(hào)鍵解決的痛點(diǎn),中國人不太用的上,也不太會(huì)這么思考(這也是為什么今天才有人無聊去試10%+10%)。
其實(shí)之前我們改成過10%+10%=0.2,這也是為什么有些用戶科學(xué)計(jì)算器=0.2,是殘留的老版本,但后來決定還是遵循全球統(tǒng)一標(biāo)準(zhǔn)。
因?yàn)橹袊瞬惶珪?huì)去這么用%(我們會(huì)直接輸入0.1而不是10%,自帶轉(zhuǎn)換),所以更改行為給國內(nèi)用戶帶來的好處很小,而一些習(xí)慣了%用法的人卻會(huì)崩潰,綜合考慮還是擇優(yōu)統(tǒng)一了用法。
來源:電子工程專輯
聯(lián)系客服