首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

手机计算器不会算10%+10%?终于知道为啥了!

这两天,全国各地的网友纷纷开始调戏自己的手机计算器了。

事情的起因是这样的,有很多网友发现拿自己手机内置计算器计算10%+10%,得到的结果不是0.2,而是0.11。而且这并不是个别厂商的系统bug,大部分手机自带计算器都中招了,苹果、华为、小米、OPPO无一例外,只有魅族和锤子自带计算器输出结果是正常的0.2。

华为Mate20自带计算器计算10%+10% ,

你的手机算出来是个啥?

对此,魅族科技副总裁华海良在微博回应说,10%+10%=0.11是国外的使用逻辑,国内的算术逻辑是10%+10%=0.2。魅族计算器因为针对不同地区进行了针对性设置,国内的手机可以正确计算10%+10%,而其他地区算出来还是0.11。

华为荣耀业务部总裁赵明则表示,这是因为计算器在考虑国外算小费的情景,“这时100+10%相当于100+100×10%,是一种出于人性化考虑的设计。”

华为荣耀业务部总裁赵明微博

所以手机计算器到底是怎么处理百分号的呢?下面我们实际来动手分析一下它的逻辑吧。以我手边的华为手机为例,在计算器上输入10%+10%,得到的结果是0.11。是不是这些自带计算器的算法有问题,遇到百分号就不会处理了呢?

咱们用更复杂的乘除法试试,算一算10%×10%和10%10%.

会算了会算了,它终于会算了~

看来,使用手机内置计算器,计算百分数的乘除法都正确,只是在进行加减法运算的时候会出点问题。如果你在手机内置计算器里输入X±Y%,计算出的结果其实是X(100%±Y%)。但是手机计算器为什么要把百分号的算法设置得这么飘逸呢?

实际上,百分号在科学计算器中的用法是符合我们计算常识的,但在普通计算器中一般采用了实用简化,Win7下的计算器和市面售卖的普通计算器一般都采用这一运算逻辑,而手机内置计算器沿用了这种设置

拿公司的普通计算器计算10+10%,也是不太聪明的亚子

这种设置主要针对的是日常使用场景,计算个折扣、小费、利息什么的就特别方便。比如我买了吊牌价75的毛衣,发现全场减价25%,这个时候我实际要花多少钱呢?

标准算法为75×(1-25%)=56.25,而这里对这种算法做了简化,你只需要输入75-25%,就直接得到了结果,是不是比还要考虑乘除法优先于加减法,括号内优先于括号外,然后再去按计算器要方便多了?

所以说,含有百分号的加减法并不是系统bug,而是这种计算器的逻辑,一切从实用出发,就像傻瓜式滤镜一秒把你变西施貂蝉,不用再钻研PS技术了一样。这实际上是一个大智若愚的设置啊。

参考文献:

[1] 《计算器使用方法》https://www.jd.com/phb/zhishi/fa980e8b8d63dc80.html?cls=1

[2] GB/T 4967-1995 电子计算器通用技术条件

[3]https://devblogs.microsoft.com/oldnewthing/20080110-00/?p=23853

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190904A0LOG700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com