看到这个标题,你可能会觉得震惊,怎么会不是0.2呢?

最近在知乎上看到这个有意思的问题,为什么手机上的计算器计算 10%+10% 都错了,结果不是0.2,而是0.11。

第一感觉是不可思议,赶紧拿出我的华为手机(EMUI版本为9.1)测试了下,果然是0.11!

10%+10% 不等于 0.2?_计算器

看看谷歌的计算器,0.2没错。

10%+10% 不等于 0.2?_计算器_02


但是搜索计算器 再计算的结果却是0.11,很奇怪。

10%+10% 不等于 0.2?_计算器_03

然后在在线自动问答系统搜索引擎wolframalpha上看看https://www.wolframalpha.com/input/?i=10%25%2B10%25

10%+10% 不等于 0.2?_计算器_04


它给出了3种结果,有0.2和0.11 。

10%+10% 不等于 0.2?_计算器_05

ps:wolframalpha这个网站计算数学公式很不错,比如开根号算黄金分割比 

10%+10% 不等于 0.2?_计算器_06

 

搜索了下苹果和小米等手机都是如此。

10%+10% 不等于 0.2?_计算器_07

然而魅族手机却是个例外。

10%+10% 不等于 0.2?_计算器_08

魅族副总裁在微博上的解释是这样的 https://weibo.com/1444241363/I554TgDEs?

本质上并不是对或错的问题,我们只是考虑的更多,增加了人性化的算法判断。10%+10%=0.11 这个是国外的使用逻辑,而国内的算数逻辑是 10%+10%=0.2,所以我们针对不同地区的固件做了不同的算法判断。

算小费等特殊场景,很多国家餐厅吃饭给10-20%的小费,这时100+10%相当于100+100*10%,相当方便的一种人性化设计。

10%+10% 不等于 0.2?_计算器_09

所以10%+10%是按照10%+(10% x 10%)这个逻辑得出0.11的结果,对应的10+10%就是11。

只能说国内和国外使用习惯不同,中国人没有付小费的习惯,而且我们一般是用0.1+0.1算的,这应该算计算器的feature,不算bug。

10%+10% 不等于 0.2?_计算器_10

看看你的手机计算器结果是0.2还是0.11?