近日,一件趣事在网上挺热闹的:有网友在使用手机自带的计算器时发现,输入“10%+10%”后,得出的结果竟不是0.2,而是0.11。更让人瞠目的是,苹果、小米、华为等品牌手机无一幸免,仅有锤子、魅族两款手机独善其身。网友们纷纷质疑,手机上的计算器真的有漏洞?对此手机厂商表示,这与手机的运算逻辑有关,严格地说并非手机算法错误。
为了验证网友的说法,记者首先拿起苹果手机,在自带的计算器上,依次输入“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+100× 10%,相当方便的一种人性化设计,那么到中国要不要改过来呢?”
小米手机的工作人员向记者介绍,安卓计算器的运算逻辑认为,100+10%里面的10%是指100的10%,也就是10,而不是0.1。这是一种国外的运算逻辑,而我国的运算逻辑认为10%就是指0.1。所以就出现了用手机计算100+10%得出的结果是110,而非100.1。由于现在所有国产手机都是基于安卓系统设计的,这是手机自带的运算逻辑,并非手机算法错误。“如果手机厂商注意到了这个问题,要调整运算逻辑也是可以的。”小米手机的工作人员表示,目前小米已经进行了修正。打开小米手机的计算器,记者发现通过左下角的红色按钮可以在两种模式中进行切换。(据北京晚报)
|