22 ?这怎么算的?
1
Vegetable 2019-09-02 15:16:17 +08:00
miui 的计算器是也,输入 20+10%会自动转换成 20+2
|
2
Vegetable 2019-09-02 15:17:04 +08:00
科学计算器会转换成 20+0.1
|
3
251243021 2019-09-02 15:17:19 +08:00
加上()来保证计算优先级
|
4
xenme 2019-09-02 15:18:54 +08:00
看起来很合理而且智能。
|
5
SEARCHINGFREE 2019-09-02 15:19:11 +08:00
20+20*10%
|
6
lhj2100 2019-09-02 15:20:29 +08:00 via iPhone
随手找了个太阳能语音电子计算器算了下 22
|
7
DANG 2019-09-02 15:22:41 +08:00
|
8
LokiSharp 2019-09-02 15:25:45 +08:00
没问题啊,加的是前一项的 10%
|
9
secsilm OP @xenme
@SEARCHINGFREE 确实是好智能,目前看来是把最后一个 % 以前的数求和当成基数来算,貌似是 a + b + c% = (a + b) + (a + b) * c% ,无论 a 和 b 有没有 %。 @251243021 想得到正确结果只能 20 + (10%) 了。。。 |
10
bk201 2019-09-02 15:29:13 +08:00
没明白为什么说只能,这个不是多此一举吗
|
11
20015jjw 2019-09-02 15:31:33 +08:00
美国小学生就是这么算的...
|
12
across 2019-09-02 15:33:01 +08:00 84
emm,前面加个 HP 20 +10%
是不是一下子就看懂了。 |
13
no1xsyzy 2019-09-02 15:36:42 +08:00
@bk201 面向大众 vs 面向 “理科生”…… 大概是这样
不如说 “理科生” 哪会去写 10% 来表示 0.1,还得暂时转移操作层,无论是 Shift 还是特殊键盘。连这个符号当百分比都不如取模常用 |
14
sagk 2019-09-02 15:47:52 +08:00 1
twenty and ten percent ?
|
18
a55455 2019-09-02 16:55:31 +08:00
魅族 普通模式和科学模式都是 20.1
|
19
kumastudio 2019-09-02 16:55:51 +08:00 1
@across 牛批
|
21
syuraking 2019-09-02 16:58:26 +08:00 1
只要是使用谷歌底层计算器的都是 22,
如果是其它的(魅族、锤子,老 OV 机,老华为机),就是 20.1, 安卓机可以明显的简单测试出对安卓底核修改的程度 明显这个运算顺序问题。 |
22
winterbells 2019-09-02 17:00:05 +08:00 via Android
单位不同怎么加。
|
23
silencefent 2019-09-02 17:03:08 +08:00
安卓机只能写成 20+1%10
|
24
pastgift 2019-09-02 17:04:01 +08:00 via iPhone 1
严格来说,单位不同并不能直接加。
自动转换成 20 + (20 * 10%) 挺合理 |
26
RickyC 2019-09-02 17:10:51 +08:00
20.1
|
27
yazinnnn 2019-09-02 17:14:53 +08:00
只能说这个算法很美式
|
28
laviris 2019-09-02 17:16:26 +08:00
今天传这个新闻的太矫情了,一般做计算的时候,很少有人会用 10%吧?为什么不直接写为 0.1,这么的好处是,我想计算某个比分比的增减就特别方便。
|
33
passerbytiny 2019-09-02 17:32:03 +08:00
看你们说得这么邪乎,我打开 windows 计算器想验证一下,然而根本无法输入百分之十,然后才想起来传统计算器上是不能输入百分数的。传统计算器,以及 C 系列的语言,“%”是的含义的 Mod,也即取余数。windows 计算器依次输入 2 0 + 1 0 % =,结果是 “ 20 + 10 Mod 10 = 20 ”。
|
34
Syaoran 2019-09-02 17:32:11 +08:00 via Android
其实还有个例子就是打折往往是写-70%
所以常见语意我觉得 a±x%意思是 a*(1±x%) 当然在计算器中是否按语意计算就有待商榷 |
35
YQ94 2019-09-02 18:07:34 +08:00
这个算的是实际意义 而不是直接把 10%当一个数值 平时生活中也都是说某某值的百分之十 这里就是按照生活中的来算的
|
36
xd314697475 2019-09-02 18:49:30 +08:00
@passerbytiny windows 的计算器左上角改模式为标准,就有%了,结果 22
|
37
mxalbert1996 2019-09-02 19:24:11 +08:00
这个设计主要方便是在计算含税价格或者折后价格这类的场景里使用的,你想想对于普通用户来说需要用到加减百分数的时候基本上都是这类场景。
|
38
guokeke 2019-09-02 19:26:05 +08:00
20+上 20 的 10% = 22
|
39
geelaw 2019-09-02 19:46:45 +08:00 via iPhone
https://devblogs.microsoft.com/oldnewthing/20080110-00/?p=23853
通常的用法是 A +/- B % = A(1 +/- B/100) 一个可能的实现是:输入数字后按 %,等价于弹出 a、b,并压入 b、ab/100。 |
40
loading 2019-09-02 20:21:53 +08:00 via Android
这个设计很傻
|
41
loading 2019-09-02 20:22:24 +08:00 via Android
等下我用卡西欧算一下
|
42
hsiang271828 2019-09-02 20:42:08 +08:00
@across 优秀
|
43
shansing 2019-09-02 20:45:02 +08:00 1
我记得小学数学好像比较过分数、除法式、百分数。百分数是不能代表其等大数值的。
|
44
shansing 2019-09-02 20:46:45 +08:00
没说好。百分数不能单独作一个数用,它只能用来描述某个基准值的比率。
|
45
LiYanHong 2019-09-02 20:55:25 +08:00
第一反应是表达式错误
|
46
douglas1997 2019-09-02 21:18:32 +08:00
这是啥手机
|
47
zhuangzhuang1988 2019-09-02 21:44:03 +08:00 4
反正微软的计算器也开源了,具体代码在这里 https://github.com/microsoft/calculator/blob/master/src/CalcManager/CEngine/scifunc.cpp#L83
原因看 @geelaw 的回答 |
48
Xavier001 2019-09-02 22:00:19 +08:00
|
49
iceEar 2019-09-02 22:07:53 +08:00 via iPhone
20 plus 10% tip, 给小费时候这样计算就很快。同理,打折时候 10% off,直接就 20-10%,没毛病啊……
|
50
Greatshu 2019-09-02 23:21:06 +08:00
|
51
dinmshi001 2019-09-02 23:35:04 +08:00
@syuraking 计算机就是一个 app,计算顺序是 app 自己写的,你也可以写自己的计算策略,跟内核没关系。
|
52
dinmshi001 2019-09-02 23:37:15 +08:00
@syuraking 还有底核是什么鬼
|
53
b00tyhunt3r 2019-09-03 00:28:03 +08:00 via iPad
@across
可以。生活都被你看透了。 |
54
cskeleton 2019-09-03 02:27:38 +08:00
@lhj2100 #6 感觉这是老式计算器的一种约定俗成的缩写,一直沿用了。而且本来计算器的输入并不等价于一个数学表达式。
有没有谁还保留了计算器的说明书的,可以翻翻,这种简写的计算方式应该会在说明书上讲的。我记得之前买过一个 TI 的计算器,说明书还挺厚的。后来有同事借取考试,就没还了…… |
55
realpg 2019-09-03 06:26:37 +08:00 1
@Biwood #29
满血 10000 点,剩下 20 点血,喝了个加 10%的药只增加到 22 的话,那这游戏没法玩了 |
56
realpg 2019-09-03 06:31:36 +08:00
@cskeleton #54
百分数代表比例,是不能作为数值使用的 而这种结果,并不是什么计算器约定俗成 20+0.1%=20.1 是完完全全的错误答案 20+0.1%=22 并不能说是正确答案 是大部分计算器对于这种错误的表达式的真实意义一种合理推测的后计算结果 |
57
ericgui 2019-09-03 06:44:06 +08:00
|
58
441324376 2019-09-03 06:49:08 +08:00
我也觉得没问题
|
59
frittle 2019-09-03 07:01:50 +08:00
觉得没问题。什么的 10%?既然+前面提供了 20,当然是 20 的 10%了。为什么能算成 10 的 10%( 0.1 )?
|
61
loading 2019-09-03 07:48:21 +08:00 via Android
卡西欧 fx-991CN X 中文版
20+20% = 20.2 |
62
loading 2019-09-03 07:50:01 +08:00 via Android
哦,搞错了,重新输入一次。
20+10% = 20.1 |
63
SkyLanD 2019-09-03 08:06:30 +08:00 via Android
翻译成中文吧
你有 20 块钱,多了 10%,现在有多少钱 |
65
Ingran 2019-09-03 08:33:13 +08:00
这是 20 的 1%,要想得出 20.1,就 20+1*1% = 20.1,%是谁的得算清楚
|
66
wujl100 2019-09-03 08:53:52 +08:00
设计解释:如 100+10%,大多数使用计算器的场景是比 100 多 10%的结果是多少,而不是 100 与 0.01 的和。如果处理为 100+0.01 则无法体现%运算的优势。生活中使用计算器按出 a+x%,通常用于计算同比或环比增长数据、折扣信息,用 a+x%快速按出 a*(1+x)%计算结果。
|
67
no1xsyzy 2019-09-03 09:00:17 +08:00 1
|
68
no1xsyzy 2019-09-03 09:02:53 +08:00 1
@ericgui 你这 issue 就一个标题?
issue 模板写在那儿白瞎了,而且你没发现 issue 模板里有两句相反的话,并且期望你删去其中一句吗? |
70
dikcen 2019-09-03 09:12:02 +08:00 via Android 1
10%不能简单的当成 0.1 考虑,%相当于是量纲。数学表达上会写 0.5x100%=50%,但不会写 0.5=50%,量纲不统一不能相等。同理,20+10%,
|
71
dikcen 2019-09-03 09:14:26 +08:00 via Android
点错,继续。20+10%从量纲考虑并不能相加,但按照世俗而非科学的方式计算,比如商品提价的计算,结果是 22 也可以接受
|
72
atan 2019-09-03 09:17:53 +08:00 1
按这个逻辑,以后大街上打折的,但凡写了-50%的,都是降价 5 毛啊,你肯吗?
|
73
resu 2019-09-03 09:21:41 +08:00
Win10 计算器可以试试,在按到%的瞬间,10 变成了 2,也就是之前数字 20 的 10%。
|
74
MerlinPrismriver 2019-09-03 09:24:48 +08:00
这问题有点跟 ++(a++) = ++(++(a++)++) 求 a=? 像,,主要目的是恶心人[狗头]
|
75
konakona 2019-09-03 09:40:24 +08:00
这里的计算结果是没有问题的啊……
20+10%的结果为:20*1.1 = 22 这里的计算结果要的就是 22,而不是 20*0.1 这个中间差。 |
76
DiamondbacK 2019-09-03 09:40:40 +08:00
说「单位」和「量纲」的,把物理老师也搭进来了。
知道什么是「单位」,什么是「量纲」吗? 这里的有「单位」吗?有「量纲」吗? 有的话,是什么? |
78
cruii 2019-09-03 09:50:54 +08:00
换个实际应用场景,一家公司财务,月流水上亿亿,此时要算 6545164564654987 增长了 20%的结果,如果不优化这个步骤,你得 6545164564654987 + 6545164564654987 * 20%这样来表达计算,那可能计算器按得有点难受, 或者想到了 6545164564654987 * 120%这种简单的方式,但这种方式在语义上并不能表示增加了 20%,只是和增加了 20%是相同的数学结果。
|
79
DiamondbacK 2019-09-03 09:54:55 +08:00
@realpg #56
> 百分数代表比例,是不能作为数值使用的 > 而这种结果,并不是什么计算器约定俗成 ------ 「百分数不能作为数值使用」的依据? > 20+0.1%=20.1 是完完全全的错误答案 > 20+0.1%=22 并不能说是正确答案 是大部分计算器对于这种错误的表达式的真实意义一种合理推测的后计算结果 ------ 这里也没讨论这个算式( 20+0.1%)。 「合理推测」是什么意思?「大部分计算器」都这样「推测」吗? 大部分计算器都这样做,但又「并不是什么计算器约定俗成」,对吗? |
80
MarginK 2019-09-03 09:55:41 +08:00
20.1
小学数学都学过吧,没有乘数,默认为 1 10%就等于 0.1 |
81
DiamondbacK 2019-09-03 10:01:26 +08:00
@winterbells #22, @pastgift #24 @dikcen #70
续 #76: 单位系指给定的某一基础物理量,单位的给定皆属人为。常伴随着某种表示法,例如米、秒、千克等,以方便人们在沟通某一量时有共通的概念。 量纲,又叫作因次( Fundamental unit ),是表示一个物理量由基本量组成的情况。 百分比(英语:Percentage ),又称百分率、百分数(符号为百分号 %)是一种表达比例,比率或分数数值的方法(以百为分母的分数计算),也是无因次量的数字(纯数)。 1、10.77 、25%, 都是数、纯数,不是物理量。没有单位,没有量纲。 |
82
caocong 2019-09-03 10:01:28 +08:00
国外打折就喜欢写 -20% -50%(如某 G 胖平台
如你买的游戏 158 有-70% 直接按计算器 158-70%就能得到折后价 算是一种非数学常识但便利的“语法糖”? |
83
DiamondbacK 2019-09-03 10:01:57 +08:00
@MarginK 对。
|
84
zhouweiluan 2019-09-03 10:02:25 +08:00
其实我觉得从语句的理解上是合理的。
今天你收入了 100 块,我再额外给多你 20%的提成。 那 100 再+20%就是 120 而不是 100+20%=100.2。 要不然得复杂成了 100+(100*20%),所以老板要说:你今天收入了 100 块,我再额外给多你 100 块的 20%的提成? |
85
Vegetable 2019-09-03 10:04:31 +08:00
还有人在讨论这个问题,数学不考虑,这就是一个很人性的功能,
现在有一个商品,原价 388 元,当前 20%OFF,请问当前价格是多少元? 388-20%=310.4(KDE 计算器也是这么设计的) 用反对者的算法需要 388*(1-20%)才能算出来,众所周知,括号很难按的,并且有些计算器根本没括号,就需要 1-20%*388 这么算,对用户来说太不友好了. 所以,小白用户会自己去按 1-20%,自认为数学好的用户会用后一种方法算,完美 |
86
petelin 2019-09-03 10:06:46 +08:00 via iPhone
用苹果计算器算一下就知道了 因为苹果不展示公式 都是单独计算的
输入最后一个%得到的 2 然后输入= 就是 20+2 22 了 |
87
FrankHB 2019-09-03 10:16:30 +08:00
%的量纲就是 1,有什么好脑补的。
无非是加了坨无聊的语法糖而已。20+10%=>20(1+10%)。 数学?人性?反正吃中缀屎的接着真香吧。 |
88
openbsd 2019-09-03 10:23:01 +08:00
楼上的各位大神 把 20 换成 0 应该就会少些争议了......
|
89
FrankHB 2019-09-03 10:23:08 +08:00
|
90
Yvette 2019-09-03 10:27:47 +08:00
其他地方不清楚,至少北美本科阶段的工科基础(数学力学材料学经济学等等等等)教材里面遇到 10% 这种数字的时候,没有任何一个地方是等效成数字 0.1 来处理的。楼上提 issue 的那位我看人也是在 San Diego 的,连这个都没搞清楚也真是有点奇怪
|
91
savebox 2019-09-03 10:50:03 +08:00
用计算器 10%+20 就是 20.1
|
92
savebox 2019-09-03 10:54:27 +08:00
所以以前用计算器的时候 有一本厚厚的说明书,里面有写输入规则,APP 当然也是按规则写的.
单独拿出来讨论计算器 20+10% 是 20.1 还是 22 没有意义,都是作者的自定义规则而已 |
93
dikcen 2019-09-03 11:09:41 +08:00
@DiamondbacK 请必要牵扯其它。我承认物理很渣,只是说“相当于”量纲。我表达的是,“ 20 ”和“ 10%”没有比较,更没有相加的基础,因为它们所代表的“量纲”/“单位”/意义不同。如之前所说,“ 0.5 ”不等于“ 50%”,就我的小学记忆,当求百分比的时候是需要做一个运算“ x 100%”,如“ 0.5 x 100% = 50%”。这些同 @Yvette #90 观点一致。
@realpg #56 同意观点。 |
95
lvybupt 2019-09-03 11:21:59 +08:00
这个是计算器的 feature,不是 bug。 需要加个 0.2 的运算需要计算器么?? 但是加 20%能省去很多麻烦。
这个简易计算器本来就是给出纳财会准备的,不是给程序员设计的。 工程类的用的科学计算器带(),也没有这个 feature。 |
97
vincel 2019-09-03 11:23:58 +08:00
国外和国内使用习惯不同
|
98
Shan0 2019-09-03 11:27:29 +08:00
感觉现实意义就是给一个简便运算,比如买了 20 元东西,应收 10%的税,正常应该是 20 + 20 * 10%, 计算器直接打 20 + 10%,意思是 20 刀+10%税 = 22 刀
|
99
secsilm OP @douglas1997 pixel 3 xl
|
100
wangyifei6817 2019-09-03 11:30:09 +08:00
我第一反应就是 22..难道不应该?
|