这两天被一个问题给刷屏了,那便是用手机计算器计算10%+10%,结果会是多少?按照正常结果来说,手机计算器应该显示的是0.2。不过在大家纷纷用自己的手机尝试之后,发现最终的结果竟然是0.11。难不成大家都犯错了,不知道10%+10%=0.2?从大家的反应来看,除了魅族手机的结果是0.2之外,其它比如vivo、iPhone、小米、OPPO等手机都显示的是0.11。为何手机计算器会出现这种问题呢?一起来了解一下。
其实关于这个运算结果的逻辑并不复杂。按照普通人的认知来说,四则运算中都是要求先乘除再加减,有括号先算括号里面的,和乘除运算有着同样优先级的也包括百分号。也就是说,普通人逻辑的运算结果应该是10%+10%=0.1+0.1=0.2。而传统计算器在计算百分号时,会在前一个数的基础上增加10%作为第二个数,因此最后的运算结果就应该是10%+10%=10%+10%*10%=10%*(1+10%)=0.11。逻辑就是这么简单,那为何只有魅族手机算对了呢?
因为vivo、OPPO、华为、iPhone等手机都采用的是传统计算器的运算逻辑,而魅族等少数手机专门对这个运算逻辑进行了修改,所以才呈现出除了魅族手机其他手机品牌均阵亡的结果。魅族虽然目前的影响力已不如当年,但是产品还是可圈可点,而且价格也比较便宜。从这件事情上就可以看出,魅族对于细节还是比较上心的,或许这也是魅族虽然落寞但依然拥趸无数的原因吧。
那如何避免这种问题呢?其实最好是手机厂商采用小数计算,将10%转化成0.1,就不会出现10%+10%=0.11这样的问题了。这个问题没有对错,而是涉及到不同的设计思路,考虑到用户的运算习惯,因此诸多安卓手机厂商并没有进行修改。如果你使用的是科学计算器,而不是普通计算器,那这个问题自然不会出现。大家不妨试试用自己的手机算一算,看你的手机算出来的是0.11呢,还是0.2呢?
"转载请注明出处。