20+10%=?

2019-09-02 15:13:14 +08:00
 secsilm

22 ?这怎么算的?

17573 次点击
所在节点    程序员
192 条回复
judeng
2019-09-04 09:11:35 +08:00
@douglarek 不,是你很能啊,生活在国外?
harley27
2019-09-04 09:18:35 +08:00
10 = 10/100 = 0.1
于是结果是 20.1
有什么问题吗?
harley27
2019-09-04 09:19:16 +08:00
@harley27 我是说,这计算器是不是有什么问题
annielong
2019-09-04 09:20:18 +08:00
支持%是纯数,相当于 X / 100,数值上计算 100*10%也是等于 100*0.1 的,包括计算的时候不也是换成 X/100,然后再计算的
Amyclarence
2019-09-04 09:21:53 +08:00
是不是特定情况下的语法糖,那不然 10%+20 等于什么?如果按 10%非纯数来说,那么这个算式不成立,如果按纯数来说,如果 10%+20 !=20+10%不就说明:20+10%=22 本身不是满足交换律的四则运算吗
annielong
2019-09-04 09:23:37 +08:00
@MIUI 小凡 指出,“ 10%+10%”是目前全球标准的计算逻辑,最早的电子计算器并没有%,是后来加入的。作为后续改进,它一定程度上解决了计算场景中的常用痛点,尤其是在西方人计算折扣、小费、利息等场景时,这样的计算逻辑会变得无比实用
sugars
2019-09-04 09:27:13 +08:00
macos 上计算器也是=22
secsilm
2019-09-04 09:34:45 +08:00
@annielong MIUI 的计算器计算 20 + 10% 结果是 20.1,因为在输入%的时候就自动变成了 0.1
philander
2019-09-04 11:48:04 +08:00
不是,这就是一个消费的问题啊,比如消费了一百,要给 10%消费,你拿 100*10%的结果+100 不就完了吗,为啥你们越扯越复杂了呢
annielong
2019-09-04 12:01:52 +08:00
@secsilm 版本不同吧,我的 9.6,输入 20 后在输入 10%直接显示 2,手机上直接是带入了上一个输入数进行了计算,
starsriver
2019-09-04 12:47:11 +08:00
老实话:这个是汇编的锅。

默认+10%会先计算出前项的值再相加。

做单片机的时候,c 语言前项参数没有的时候编译为汇编机器码会自己往前位移十六位。。当初做实验有一定的概率复现。原因就是这个
chanywn1
2019-09-04 17:50:51 +08:00
20 + 10% ?= 20 + 20 * 10%

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/597205

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX