这两天,全国各地的网友纷繁开端调戏自己的手机核算器了。
工作的原因是这样的,有许多网友发现拿自己手机内置核算器核算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:///phb/zhishi/fa980e8b8d63dc80.html?cls=1
[2] GB/T 4967-1995 电子核算器通用技能条件
[3]https://devblogs.microsoft.com/oldnewthing/20080110-00/?p=23853