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