计算器加减乘除优先级算法_手机计算器出错,原因竟是人性化设计

91fedeb04f5a35005cd8d90a81400719.gif

454f66b4271dea0545c5b372dad006da.png

近日,一则“手机计算器全线阵亡”的消息登上各大热搜榜。不少网友发现自己手机的计算器出现了一个错误:在手机计算器中输入“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针对不同地区进行了不同的算法判断。”

848cdc011d3988636a7bf96b9781b2ef.png

70cd21490caf90d9778b290c2e3b0220.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值