当前位置:恩施知识网 > 科技创新 > 正文

手机计算器出错是什么原因,手机计算器

热点追踪
近日,一则“手机计算器全线阵亡”的消息登上各大热搜榜。不少网友发现自己手机的计算器出现了一个错误:在手机计算器中输入“10% 10%”后,得出的结果不是0.2,而是0.11。科技日报记者用自己的华为手机测试以后发现,得出的结果也是0.11。
有不少网友测试后发现,苹果、华为、三星、OPPO、vivo、小米等多款手机给出的计算结果均为0.11,仅有国内的魅族、锤子、努比亚旗下机型最终的计算结果为0.2。
那么,手机计算器究竟为什么会犯这种低级错误呢?引发该错误的机制又

热点追踪

近日,一则“手机计算器全线阵亡”的消息登上各大热搜榜。不少网友发现自己手机的计算器出现了一个错误:在手机计算器中输入“10% 10%”后,得出的结果不是0.2,而是0.11。科技日报记者用自己的华为手机测试以后发现,得出的结果也是0.11。

有不少网友测试后发现,苹果、华为、三星、OPPO、vivo、小米等多款手机给出的计算结果均为0.11,仅有国内的魅族、锤子、努比亚旗下机型最终的计算结果为0.2。

那么,手机计算器究竟为什么会犯这种低级错误呢?引发该错误的机制又是什么?

经过多方求证,科技日报记者得知,事实上,手机计算器出现这种情况不能算是错误,这主要是因为非科学计算器和科学计算器,对输入符号的理解不同。人在计算时,会尊重计算中加减乘除的优先级,先做乘除再做加减,结果就是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”,均符合这一计算逻辑。

华为荣耀业务部总裁赵明在微博上表示,实际上这里有一个背景,就是在算小费等特殊场景,很多顾客在一些国家餐厅用餐后会给10%到20%的小费,这时在计算器中输入“100 10%”就相当于“100 100�10%”,这样就简化了输入步骤,是一种相当方便的人性化设计。

魅族科技副总裁华海良也发微博表示:“其实,本质上这并不是对或错的问题,我们只是考虑得更多了,增加了人性化的算法判断。‘10% 10%=0.11’这个是国外的使用逻辑,而国内的算数逻辑是‘10% 10%=0.2’,所以,我们的APP针对不同地区进行了不同的算法判断。”

手机计算器出错是什么原因,手机计算器

手机计算器百分号错误真的是bug吗?

这两天,全国各地的网友纷纷开始调戏自己的手机计算器了事情的起因是这样的,有很多网友发现拿自己手机内置计算器计算10%+10%,得到的结果不是0.2,而是0.11。而且这并不是个别厂商的系统bug,大部分手机自带计算器都中招了,苹果、华为、小米、OPPO无一例外,只有魅族和锤子自带计算器输出结果是正常的0.2。

对此,魅族科技副总裁华海良在微博回应说,10%+10%=0.11是国外的使用逻辑,国内的算术逻辑是10%+10%=0.2。魅族计算器因为针对不同地区进行了针对性设置,国内的手机可以正确计算10%+10%,而其他地区算出来还是0.11。


华为荣耀业务部总裁赵明则表示,这是因为计算器在考虑国外算小费的情景,“这时100+10%相当于100+100×10%,是一种出于人性化考虑的设计。”

所以手机计算器到底是怎么处理百分号的呢?下面我们实际来动手分析一下它的逻辑吧。以我手边的华为手机为例,在计算器上输入10%+10%,得到的结果是0.11。是不是这些自带计算器的算法有问题,遇到百分号就不会处理了呢?


咱们用更复杂的乘除法试试,算一算10%×10%和10%10%.

看来,使用手机内置计算器,计算百分数的乘除法都正确,只是在进行加减法运算的时候会出点问题。如果你在手机内置计算器里输入 X±Y%,计算出的结果其实是 X(100%±Y%)。但是手机计算器为什么要把百分号的算法设置得这么飘逸呢?


实际上,百分号在科学计算器中的用法是符合我们计算常识的,但在普通计算器中一般采用了实用简化,Win7下的计算器和市面售卖的普通计算器一般都采用这一运算逻辑,而手机内置计算器沿用这种设置

手机计算器出错是什么原因,手机计算器

手机计算器阵亡什么回事?

手机计算器阵亡怎么回事 手机计算器运算结果错误原因
  在OPPO、华为、苹果、小米等智能手机上使用自带计算器计算“10%+10%”的时候,得出的结果是0.11,而不是0.2。这一眼看起来是Bug,但最终结果是计算器处理运算符号的逻辑导致的。
  魅族华海良对此的解释是,“这个话题引发了不少讨论,其实本质上并不是对或错的问题,我们只是考虑的更多,增加了人性化的算法判断。10%+10%=0.11这个是国外的使用逻辑,而国内的算数逻辑是10%+10%=0.2,所以我们针对不同地区的固件做了不同的算法判断。”
  刚刚,小米产品总监@MIUI凡发文《手机计算器全线阵亡终结贴》,详细的科普了为什么计算器会出现这样的运算结果。
  以下为《手机计算器全线阵亡终结贴》全文:
  鉴于昨日计算器百分号引发了大型社会悬疑,10%+10%居然=0.11,这究竟是代码的扭曲还是教育的沦丧,让我替大家揭开真相。
  看一些文章几百字也没把道理说太清楚。鉴于超强的归纳+化繁为简的表达=聪明才智的体现,我尝试用一句话说清运算原理。以8+10%为例,为什么=8.8而不是8.1?一起读:8元钱,加上10%的小费,一共是8.8元。
  以上就是目前全球标准的计算逻辑,但还有一个大家疑惑的问题:为什么计算逻辑要这么设计?于是这变成了一个历史思考题。
  最早的电子计算器并没有%,是后来加的。作为后续改进,它一定解决了计算场景中的常用痛点,而绝不是脑残。我推测很可能是西方人计算折扣、小费、利息等常见场景。
  货物560元,20% OFF(打八折)多少钱?560-20%=448!
  资方存入2800元,计年息6%,本息总计多少?2800+6%=2968!
  是不是一下子好用到爆。But,为啥我前面加了一个“西方人的计算场景”呢?因为我觉得对于算力过剩的中国人,很少人会这么思考和输入。
  货物560,砍两成就是560*0.8=448;2800,6%年息,就是2800*1.06=2968。就是这么屌!直接省去了一步(国人这么优秀我TM能怎么办)
  所以百分号键解决的痛点,中国人不太用的上,也不太会这么思考(这也是为什么今天才有人无聊去试10%+10%)。但对于西方很多同志来说,这玩意真是能救命呀
  最后说一下MIUI怎么想的。
  其实之前我们改成过10%+10%=0.2,这也是为什么有些用户科学计算器=0.2,是残留的老版本,但后来决定还是遵循全球统一标准。
  因为中国人不太会去这么用%(我们会直接输入0.1而不是10%,自带转换),所以更改行为给国内用户带来的好处很小,而一些习惯了%用法的人却会崩溃,综合考虑还是择优统一了用法。
免责申明:以上内容属作者个人观点,版权归原作者所有,不代表恩施知识网立场!登载此文只为提供信息参考,并不用于任何商业目的。如有侵权或内容不符,请联系我们处理,谢谢合作!
当前文章地址:https://www.esly.wang/keji/15653.html 感谢你把文章分享给有需要的朋友!
上一篇:手机越来越卡顿的原因,为什么手机出现卡顿 下一篇:海纳百川最大支持80TB联想个人云存储X1评测

文章评论