为何手机计算器50%+50%=075魅族只有我们没阵亡
文章开始前,请你打开手机计算器,计算一下标题中的“50%50%”,看看结果是几?
不出意外的话,这边会显示3种结果:
第一种,OPPO、vivo、小米等手机会显示为0.75;
第二种,魅族(以及部分小品牌)会显示为1;
第三种:iPhone系列会显示0.25,不过你再按一下等号,也是0.75。
是不是很神奇?再来算个好玩的,比如10020%,小米等品牌会显示为120%,而魅族显示100.2。
为什么有两种答案呢?
150%50%=0.75是怎么来的?
想象一下这个场景,你在爽玩一款刷装备的游戏,为了刷出优秀词条打得不亦乐乎。终于,Boss掉了一把属性还不错的装备,有一项“15%近战伤害”。***如你的攻击力是100点,穿上它之后,伤害是多少呢?
相信玩家们都会脱口而出:115。应该没有人会认为是100.15吧?
图片来自网络仅供参考
%,即百分比,是一种表达比例,比率或分数数值的方法。在这项计算中,我们会主动将100加15%伤害,转换为100100×15%=115,心算无压力。但如果你穿了一整套装备,头盔42%,靴子-17%,手套50%,技能又14%,这心算起来就有些困难了。
为了算出角色的最终伤害,你掏出计算器,按出以下算式:
就这一项算式,你就得按上几十下按钮,出一个错就会产生结果误差。而在金融等需要高度计算的行业中,需要计算的算式只会更加复杂,要按的按钮更多,“忙中出错”的可能性也就越大。
因此,函数式计算器就将百分数计算的逻辑进行了更改,AB%=A(A×B%)。这样一来,上面的计算式就简化为:
回到开头,手机计算器中的“50%50%”代入上面的公式,最终结果就是0.75。
目前,AB%=A(A×B%)已经成为全球惯例。微软资深开发人员RaymondChen曾在一份开发者日志中写道:“Windows计算器中百分键的工作方式与廉价的袖珍计算器相同,那些袖珍计算器上的百分键并不是为数学家和工程师设计的,而是针对日常计算而设计。如果你是一名工程师,可能认为这样的方式很反直觉,甚至出了Bug,但对一般民众就很合理。”
图片来自微软开发日志
从这篇日志可以看出,计算器开发者认为AB%=A(A×B%)这个算式是很普及的一种概念,如此定义并无问题。但在国内,绝大多数的用户应该都不认同这条算式,50%加上50%就是100%。如果国内用户想要用手机计算器计算两个百分比相加,就得额外加上括号,结果就对的上了:
其实如果更加深究的话,还要涉及到计算器算式堆栈等复杂的语言问题,这里就不再赘述了。
2是懒得改,还是没必要?
既然手机计算器百分比计算这么“反人类”,为什么厂商不改呢?
现已从魅族科技离职的华海良曾在2019年9月发布博文,挂上了一个“手机计算器全线阵亡”的夸张话题。他表示,魅族的研发团队“想得更多”,增加了人性化的算法判断,所以针对不同地区的固件做了不同的算法判断。
对此,MIUI金凡也发文科普,给出了“中国人算力过剩,对西方同志来说却能救命”的解释:“其实之前我们改成过10%10%=0.2,但后来决定还是遵循全球统一标准。因为中国人不太会去这么用%(我们会直接输入0.1而不是10%,自带转换),所以更改逻辑给国内用户带来的好处很小,而一些习惯了%用法的人却会崩溃,综合考虑还是决定回归和全球标准统一。”
金凡的原推文现在已经看不到了
金凡的发言其实很巧妙地转移了话题,让米粉们更容易接受,有种“照顾”国外同志的优越感。归结到底,手机计算器本来使用率就低,百分比符号使用得更是少之又少。个人认为,两种计算方式都能理解,没必要死磕意义上纲上线,实在要算百分比用小数就得了。
3总结
之所以想起这个话题,还是因为魅族20系列的“重生”。Flyme系统一直致力于打造人性化系统,这次更改百分数计算惯例就是做出差异化的一次尝试——事实上也同样如此,当时这个话题也在社交媒体上给魅族带来了不小的热度,算是一次较为成功的革新。
你认为计算器中50%50%该不该等于0.75呢?欢迎讨论。
为什么计算器50%+50%等于0.75
计算器50%+50%等于0.75的原因是按照a%+b%=a+a*b%或a*(1+b%)计算。
当你输入50%+50%的时候,手机会先把前面一个50%转化成0.5(因为它的前面没有数了,所以就默认转化成小数,a%=a/100),后一个就理解为“加上前一个数的50%”,于是50%+50%=50%+50%*50%=50%+25%=75%=0.75。
百分比是一种表达比例、比率或分数数值的方法,如82%代表百分之八十二,或82/100、0.82。百分比是一种表达比例,比率或分数数值的方法,如82%代表百分之八十二,或82/100、0.82。成和折则表示十分之几,举例如七成和七折,代表70/100或70%或0.7。
计算器计算的注意事项
在进行计算时,我们需要注意数值的范围。如果数值太大或太小,计算器就会出现溢出或下溢的情况,导致计算结果不准确。例如,我们要计算1000000000乘以1000000000,如果我们使用的计算器只能处理10位数的计算,那么计算结果就会出错。
在使用计算器时,我们需要特别注意小数点的位置。如果小数点放错了位置,计算结果就会出错。例如,我们要计算2.5乘以3.6,如果我们误将小数点放在了25和36之间,计算结果就会变成90,而正确的结果应该是9。
手机计算器百分号错误真的是bug吗?
这两天,全国各地的网友纷纷开始调戏自己的手机计算器了事情的起因是这样的,有很多网友发现拿自己手机内置计算器计算10%+10%,得到的结果不是0.2,而是0.11。而且这并不是个别厂商的系统bug,大部分手机自带计算器都中招了,苹果、华为、小米、OPPO无一例外,只有魅族和锤子自带计算器输出结果是正常的0.2。
对此,魅族科技副总裁华海良在微博回应说,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下的计算器和市面售卖的普通计算器一般都***用这一运算逻辑,而手机内置计算器沿用这种设置
为什么手机上的计算器在计算百分比相加时会得出奇怪的结果? 比如,5%+25%=0.0625
所有人都没有答到点子上。我给你解释一下:
先看下面两个题目:
1、去年的产量是1000,今年增加10%,今年的产量是多少?
2、一件商品昨天买5元,今天涨价25%,现在的售价是多少?
这两个题目都用到百分数,公式相同,就是:
1000×(1+10%)=1100
5×(1+25%)=6.25
在用手机上的计算器计算时,%号的功能更强大,上面的两个题可以这样算:
1000+10%=
5+25%=
你试一下,是不是等于1100和6.25?
所以,手机计算器上的a+m%=的含义是"数量a增加百分之m后的总数量。
回头再看5%+25%=,第一个5%被计算器理解为数量0.05,这个算法就成了计算器的0.05+25%=,即0.05增加25%后的总值,写成数学表达式则是0.05×(1+25%)=0.0625。
当你知道了手机上计算器上奇怪的
5%+25%=0.0625
的原因,应该也就知道了:
4%+26%=0.0504,
26%+4%=0.2704
的来历了。
祝你开心!