首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

20+10%=?

  •  
  •   secsilm · 43 天前 · 13707 次点击
    这是一个创建于 43 天前的主题,其中的信息可能已经有所发展或是发生改变。

    22 ?这怎么算的?

    192 回复  |  直到 2019-09-04 17:50:51 +08:00
    1  2  
        101
    DiamondbacK   42 天前
    @Yvette 这样的数学专业的教材中的例子,可以举出一个看看吗?
        102
    DiamondbacK   42 天前
    @Yvette #90
    这样的数学专业教材的例子,可以举出一个看看吗?
        103
    DiamondbacK   42 天前
    @dikcen #93
    只问一个问题:100% = 1 成不成立?这是数学问题。
        104
    FrankHB   42 天前
    @dikcen %(percent) 这个本来就是×1/100 的语法糖,不会扩散到外部引起替换非同义语法外的其它改变。
    所以说 20+10%的标准重写做法就是 20+10×1/100=20.1,这是%自身定义能决定的计算方式。
    至于非得把 20+10%理解为 20×(1+10%),这是和%本身的含义无关而只是上下文决定的另外的变换。用输入序列中结尾的%来标记引发这种变换的条件,这是特定用户界面的约定,和运算本身的逻辑无关。
    而非得×100%或者有其它带%的输入才能在结果表达中用%这是另一种习惯,但这种习惯和原始定义是不冲突的,更不可能决定不按这种习惯计算上就是错的。按这种习惯,20+10%自然是没法计算的,但不是说 20+10%就是数学上无意义错误的表达,顶多只能怀疑“可能写错了”。
    而量纲明显有更普遍的逻辑,发现没意义是语义上的错误,根本不能弱化条件强行计算,和这里的处理方式没有可比性。

    @Yvette 什么工科基础教材会故意使用和原始定义不兼容的计算表达,麻烦举实例。
        106
    FrankHB   42 天前
    @jfdnet 人性个蛋蛋,那么大空白一坨触控输入界面,就不会多提供几个选项往上面塞点东西允许让用户自己选?真要人性化提供特定场景的优化,这种情况不把+10%这种直接做个按钮或者干脆给个“小费计算”?
    还有啊,上面 M+ M- 占那么大地儿的那几坨就够人性化了?本来模拟古董计算器的 UI 就够蠢了,为了莫须有的习惯跟更通用目的的表达式过不去是蠢上加蠢。
        107
    Yvette   42 天前
    @DiamondbacK
    @FrankHB 算比率的地方都是需要加上一个 100 来变成百分数,而不可能把带百分号的数当成小数来使用,请勿曲解我的原话。随手翻到一个例子,在机械工程专业本科生必修的系统动力学教科书,System Dynamics 3rd by Palm III, William 的第 513 页,截图如下:
        108
    itstudying   42 天前
    @across #12 就你流批
        109
    FrankHB   42 天前
    %caocong -20% -50%和 158-70%完全不是一个概念。
    -20%对什么东西有效是明确能理解的,否则就没意义了。但放到随便什么数之后这个-就不是这个意思了。
    你有见过 G 胖或是敢谁用 158-70%这样的,还不特别在 158 和-70%之间加空格或者特别用不同字体和颜色区分开明确-是属于-70%的?
    这些计算器这样设计是偷懒的做法,不说数学问题,就按常识来讲的 UX 的角度来讲至少反馈是很蠢的:-明明是和操作数没具体关联的二元操作,特殊处理后含义改变了,就不该和普通的-显示成一样的效果,还能让谁贴出来群嘲。
        110
    FrankHB   42 天前
    草我魔怔 at 都变成%了,,,@caocong ……
        111
    DiamondbacK   42 天前
    @Yvette
    这个例子明确支持了 x + 10% = x + ( 1 + 10%) = x + x * 10% 这种「算式」吗?
        112
    DiamondbacK   42 天前
    更正:
    x + 10% = x * ( 1 + 10%) = x + x * 10%
        113
    jfdnet   42 天前
    @FrankHB 人家好好解释 你是傻比啊 莫名其妙
        114
    mamahaha   42 天前
    不用搜了,这个是外国手机算小费的。
        115
    FrankHB   42 天前
    @Yvette 这种习惯表达一般是在后面×100%,或者把×100 写在分母,要么干脆整个等式中排除百分号,最后直接明确(%)表示两边都是百分数(所以左边要×100 )。你这例子里=左边直接在分数线后接相同字体字号的整数,=右边又直接用%的表达,要么另外约定过,要么只能说明作者脑子有坑。
        116
    Yvette   42 天前
    @DiamondbacK 从纯逻辑角度来讲,这个例子明确支持了「百分数不能等效成纯数」这个说法,进而明确支持了 x + 10% != x + 0.1
        117
    DiamondbacK   42 天前
    @Yvette
    明确支持了 x + 10% = x * ( 1 + 10%) = x + x * 10% 吗?
        118
    FrankHB   42 天前
    @jfdnet 我本来就评论瞎猜用户使用场景傻逼,你现在非得站队洗?行吧,理解了,物以类聚。
        119
    DiamondbacK   42 天前
    @Yvette 至于「百分数不能特效成纯数」,它连数学教材都不是,就先不说它了。
        120
    FrankHB   42 天前
    @Yvette ……还特意强调“纯逻辑角度”,你的逻辑就是外行的个例能证明“不能”?
    我还说分数线后不能直接写整数呢,你又用什么逻辑证明能了?
        121
    Yvette   42 天前
    @FrankHB 把一本在至少美国全国范围内广泛使用并多次再版的工程学基础教材的作者说成是脑子有坑还是需要一点勇气的,佩服您。

    如果一定要的话,建议把 % 看成是单位或许能帮助您理解。(我并没有下定论说 % 是一个单位,希望不要误解)
        122
    Yvette   42 天前
    @FrankHB 我分不清你是真的看不清我发的图证据和我说的话里的逻辑一致性,还是只是想无脑嘲讽发泄情绪。如果是前者,你跟我说一声我会跟你把这个浅显的逻辑帮你推理一遍;如果是后者,还麻烦你直接把我 block
        123
    DiamondbacK   42 天前
    @Yvette 我在 #117 又问了一遍,不是我打错,确实是同一个问题。
    其实这个教材连 x + 10% != x + 0.1 都没有支持。
        124
    FrankHB   42 天前
    @Yvette 全世界人民都不会二话不说随便在分数线后随便接数字表示算术运算,都知道=左右的数量得能比较(而不是一个不带%的百分数一个带%的比值),就凭两点说脑子有坑,不行?
    诉诸权威是吧……看作单位,行,国际单位制和 ISO 31-0 还要求数值和%之间加空格呢(当然,没说%就是单位,希望不要误解),“美国全国范围”比起来有排面的嘛?
        125
    FrankHB   42 天前
    @Yvette 你给的证据的逻辑强行理解就是这样:
    存在没把百分数等效成纯数的例子→百分数不能等效成纯数。
    这是什么逻辑?
    当然,你的例子的表达本来就有另外的坑,这是另一回事。
        126
    Yvette   42 天前
    @DiamondbacK
    1. 假设 x + 10% = x + 0.1
    2. 即 10% = 0.1
    3. 即 x% = x/100
    4. 即图中等式右侧为 0.208
    5. 计算途中等式左侧为 20.0
    6. 等式不成立,反证得知 x + 10% != x + 0.1

    至于你在 117 楼问的问题,从头到尾都不是我讨论的东西,我讨论的一直都是「百分数不能等效成纯数」
        127
    Angdo   42 天前
    flyme 正常 emui 22
        128
    FrankHB   42 天前
    @Angdo 我忘了在哪看过有人提过 flyme 国际版和国内版不同了。不清楚具体版本。
        129
    DiamondbacK   42 天前
    @Yvette #126
    可是主贴就是这个问题啊。而且有人针对这个问题提 issue ——而这就是我在 117 楼提的、「从头到尾都不是」你讨论的问题——有什么问题?你在 #90 的意思不是说这个 issue 不该提吗?
        130
    Yvette   42 天前
    @FrankHB 我的逻辑在上一个回复里面。你的质疑并没有驳斥到我提出的任何东西,如果你硬要把你没见过的表达式认为是错,由此来否定作者的正确性,这样的质疑我不值得花我更多的时间来找出更多的例子来反驳。

    想知道的人看到我发的内容就已经能明白是怎么回事了,看不懂我白纸黑字写的证据和推断的人我也不在乎。您如果有更值得探讨的论点欢迎再 at 我,如果还是像这样带着情绪来 at 我,恕我不会再回复
        131
    Yvette   42 天前
    @DiamondbacK 对于 % 与数字连用的问题我并不知道,只是那些反驳计算器错了的人用的都是「百分数就是纯数」这个论点,我只是说清楚不能用这个论点来反驳而已。至于结果到底是怎么样,不是我关心的。主贴里计算器的结果就算不能被证明是对的那也至少不能被他们证明是错的。
        132
    Yvette   42 天前
    @DiamondbacK 对,我也确实认为那个 issue 不该提
        133
    DiamondbacK   42 天前
    @Yvette #126
    然后说你的证明:
    不知道你怎么把左边算成 20.0 的,或者你是指 20.8 ?我容个错。
    你没说,但是可以推测你预设了一个前提,是左边的 100 要解释为 * 100,而我不认为这个前提成立,而且我不相信这个教材的作者会赞成这样理解。
    如果成立,你的结论是 (0.2416 - 0.2) / 0.2 * 100 = 20.8%,也就是 20.8 = 20.8%。也就是说你定义的百分数:
    x% = x
    是这样的。我相信没有哪个北美的教材支持,不光是数学教材,工程类的也不敢这么写,不光是北美,南美也不敢。
        134
    FrankHB   42 天前
    @Yvette 你图中的例子根本就没法这样用。因为除非另外有约定,它本来就是错的。
    这里我说错,首先是有基本的语法错误:分数线后不能直接接整数。
    当然,你可以说我“没见过认为是错”是不对的,那么你得给出这样做的依据:作者的约定。
    这是因为(首先不说语法设计本身的糟烂和实用问题),首先我确定你这里算术记号的写法就不是“机械工程专业本科生必修的系统动力学教科书”的作者发明的,而光是算术上的习惯我都能确定不管在哪,往后随便塞个 100 表示×100%的含义的做法都不怎么普遍到让我能记得起来在哪看过。不信,你可以和不管哪国的数学教师问问,确认下这是不是已经是约定俗成到不需要另外约定就不会有问题的记法。除非你给出证明这是惯用写法的依据,这个问题是跑不掉的——我不觉得你能做得到这点。否则,就你已经给的例子,只有作者的约定才能有效证明这个确实不算错。
    (退一步讲,即便是这样,我也会给出等效的明确不会引起误会的写法。非得要用不够普遍的约定,使用这种写法的作者——也许不止是这一位——的脑子仍然不大好使。)
    如果把这个语法错误改掉,理解为乘法,那么图中第一个等式的表达等效于:
    ((0.2416-0.2)/0.2) × 100 = 20.8%
    ……这就很扯了,图中左边实际上算出来是 20.8,你想说 20.8 = 20.8%?所以你到底算不算支持在“百分数不能等效成纯数”?
    不过不管是哪个观点,这个 = 都是没救的。
    要是支持带 % 的数可以和不带 % 的所谓“纯数”比较,100% = 1,100 / 100% = 100,这比例不会不懂吧?
    能强行把 100 倍偏差理解成相等,这不是坑是什么?
    最后,正确的表达:
    (0.2416-0.2)/0.2 = 20.8%
    ((0.2416-0.2)/0.2) × 100% = 20.8%
    第二个等式不会有碍你的观点,但你偏偏选择给连你自己观点都证明不了的疑惑的表达站台,那就没办法了。
        135
    DiamondbacK   42 天前
    @Yvette #131
    不巧我就是「百分数就是纯数」的支持者,可能是最明确的那个。
    百分数不出现在与其它「形式」数字的加法算式中,只是习惯。
    百分数是什么,什么算式是合法的,都是数学定义问题,我是从数学定义出发,支持百分数是「数」(也就是所谓「纯数」的。
        136
    Yvette   42 天前
    @DiamondbacK 嗯嗯,是打错 20.8。

    其实用小数乘以一百得到对应的百分数,这个做法是在我见过的所有工科教材中都普遍使用的表示方法。我知道维基百科不能作为学术引用,但是我这会儿没太多时间翻课本找更好的例子,勉强借这个一用。在 https://en.wikipedia.org/wiki/Percentage#Calculations 页面有一句 "... first compute the ratio 50/1250 = 0.04, and then multiply by 100 to obtain 4%...." 这里用的就是 0.04 乘以 100 得到的 4%。

    另一个层面上也佐证了 0.04 与 4% 是不能混用的。

    另外,我说的北美并没有任何价值判断的意思,只是为了稍微严谨一点,因为确实不了解其他地方的情况。
        137
    Yvette   42 天前
    @FrankHB 可以参考一下我刚刚的一条回复。
        138
    DiamondbacK   42 天前
    @Yvette 你可能没看清楚,你这个例子是 0.04 * 100 = 4%,而你之前的证明隐含的意思是 4 * 100 = 4%。
        139
    DiamondbacK   42 天前
    @Yvette 更正:
    你可能没看清楚,你这个例子是 0.04 * 100 = 4%,而你之前的证明隐含的意思是 4 = 4%。
        140
    DiamondbacK   42 天前
    @DiamondbacK 晕,又写错了。前面不管了,就是「 4 = 4%」,你确定吗?
        141
    DiamondbacK   42 天前
    @Yvette
    再明确点吧,非形式语言和数学语言不能相提并论,比如说你的维基例子中的
    「... = 0.04, and then multiply by 100 to obtain 4%....」
    但他绝不是
    0.04 * 100 = 4%
    的意思,连这个楼里其他你的赞同者,大部分都不会有这个意思。
        142
    bleaker   42 天前
    如果有在西方(尤其是有小费习惯的某英制单位国家)生活经验的话就肯定不会觉得这是个 bug... 明显的 feature 啊,一个计算器,最常见的场景就是各种算打折和小费,其他还有什么单位转换、汇率转换之类的都会做到计算器里,input 不是一个纯数学表达式,而是用数字表示一个场景,再智能点的你写个 $1 + €3 + 15% 人家也也能帮你算出来
        143
    mayuko2012   42 天前
    @across #12 太强了!
        144
    FrankHB   42 天前
    @Yvette 你给的链接说的是算术运算,那句话是指 and then multiply (the number in the ratio) by 100 to obtain 4% 而不是 and then multiply the ratio by 100 to obtain 4% 。
    按你的理解,后者也是说不通的。
    而作为数学表达式乘以 100 就明显不对,除非把 % 单独提出去。
    把 % 隐藏的用法我提过是有的,得在最后再用 (%) 或另外说明表示清楚(这个用法 % 类似单位):
    50/1250×100 = 4 (%)
    但像你给的图里的 = 一边不用 % 而另一边用 % 不属于这种用法,反倒是你所谓的混用。
    而且你给的链接的下文实际上说了,在计算中 % 不能乱加,否则实际的值就被凭空 /100。这里确定实际的值的计算,就用到了你所谓不能混用的纯数的比较。
    所谓不能混用,恰恰就是为了避免这种错用的问题,而不是说这样写数学上没意义。不要本末倒置。
        145
    Yvette   42 天前
    @DiamondbacK 这个确实很反常识,因为我在国内高中以及之前受到的教育确实是百分数就是当成数字来用,虽然没有明确定义说就是这样,但大家好像潜移默化地都有这个倾向。然而我本科的时候在北美上的**所有**工科的课里确实是把小数乘以 100 而不是 100% 来得到百分数,我有点在意这个所以自己在作业里是写成 100%,而教科书和讲义里也确实都是 100。不过你说得对,你指出的那个说法有问题。

    如果这样来看可能确实是不同地方的标注方式不同导致的,毕竟这个并没有一个明确的定义来把小数和百分数划等号或者划不等号;可能有具体定义,只是我们没找到。要是有具体的定义来讨论可能会比较明了了,不过现在来看应该就是北美(写出这个计算器的人所在的地区)的计算器上,拿百分数来表达小数会是有点问题的,这也与我自己的经验一致。
        146
    Yvette   42 天前
    @FrankHB 如 @DiamondbacK 指出,那个说法确实有误。猜测是 100 与 100% 表达方式的问题
        147
    cuixiao603   42 天前
    @pastgift #24
    @winterbells #22
    10%+10% =0.11 怎么解释
        148
    whp1473   42 天前
    小米计算器是 20+10%=20.1
        149
    lscho   42 天前
    看了标题就得出答案 22,难道我不对?
        150
    FrankHB   42 天前
    @Yvette 仍有理解偏差。“并没有一个明确的定义来把小数和百分数划等号或者划不等号”这个显然有问题。因为数学上这两者就不是并列关系。
    数学上小数按进位制分数定义,而百分数作为整体就是定义为分母为 100 的比例(有理数),两者同属实数,后者是前者的真子集。这哪里能推出不能比较了?
    你所谓的不能混用纯粹就是为了避免误用的习惯问题。非要混用只是看起来可能奇怪,不符合惯例,而不是数学上无意义的。反倒是你所谓的北美工科的课程材料里的习惯因为在一边少了%,违反了更一般的不混用的习惯。我怀疑这就是以讹传讹,根本没系统约定。
    至于地区的标注方式没你说得那么笼统,区域相关的写法不同很多都是被标准化的,虽然也有明确的不同,大多依赖语言(像小数点,英语用“.”,法语用“,”)。
    但据我所知,随意在数学表达式的计算中省略 % 不属于区域相关的约定。
    至于这楼里讨论的计算器,实现的功能根本就不是表达式计算。我在另一个回复提过,让 UI 反馈看起来像是表达式而造成混淆,是 UX 上的失败设计。
        151
    kile   42 天前
    @cuixiao603

    (1*10%) + (1*10%)*10% = 0.11

    100+15% = (100+100*15%) = 115
        152
    cuixiao603   42 天前
    @kile #151 老哥看我 @的内容啊
        153
    sikariba   42 天前
    卡西欧 DH-12 按的也是 22,看来是计算器的一个 feature
        154
    Yvette   42 天前
    @FrankHB 我觉得是有标准化的,可能我们这种非专业人员没了解到已。况且,把百分数直接定义成了有理数的时候,那其实直接就可以得出结论这个 UX 上的决定在数学上就是错的,然而非也。按我目前的理解来说(至少在北美语境下)百分数更像是一个简化的表达方式而非一个数,这样来说那个计算器设计的合理性就可以解释得通。

    我能想到的一个类似的国内外表达方式的差异一个情况可能是排列组合,国内的组合是用 C 加上下角标来表示,而美国是用括号 C(n, k) 来表示。
        155
    fuxiuyin   42 天前
    这个就是一个方便是用的需求,国外的打折、消费税、小费、服务费都是 xx%加减的,这就是个方便使用的特性,xx+xx%(服务费 /小费 /消费税),xx-xx%(打折之类的),国内没这个使用场景,所以国内的计算器都实现的是一般的 10%=0.1,国外的或者说偷懒没改直接搬过来用的的就用的是特殊实现版本。
        156
    fuxiuyin   42 天前
    写程序的时候,为了需求和方便使用,打破最开始设计的规则的事情还少吗?就是一个类似于你这定了一个完美的规则写完了程序以后,PM 给你来了一句“我要 xx ”,然后你在程序里面加了个 if 语句块= =。
        157
    FrankHB   42 天前
    @Yvette 计算器的 UI 本来就没那么严格的规则,大多数用户根本都不在乎这是不是表达式。然而工程计算不可能是这样,特别是还和更基础的普遍常识有冲突,所以就显得非常可疑了。排列组合这种写法本来就没那么基础和普遍,长期下来共存惯了也不会有那么多问题,而且根本上还是看具体作者的约定而不是地区习惯,不会想找依据都找不到。
        158
    irobbin   42 天前
    单独的 10%没有任何含义,100 的 10%还是 1000 的 10%,完全不一样。楼主自然而然的理解成 10%=0.1,一开始就是错的
        159
    winterbells   42 天前 via Android
    @cuixiao603 #147

    看#158
        160
    DiamondbacK   42 天前
    @Yvette #154

    我相信你并没有真的看到过任何例子支持「北美语境的数学中百分数不是数」,而且说这么多,好像数学是用例子来建立的, 但不是,要拿出定义,「百分数是什么?」。数的定义,百分数的定义,不可能在工程类教材中找,数学不以工程学为基础。

    从数学教材到现在网络可查的资料,都明确定义是「百分数是数」「 percentage is number 」,更详细的:
    In mathematics, a percentage is a number or ratio expressed as a fraction of 100.
    number 就是数,ratio 也是数。
    对,16:9 也是一个数。

    表达方式的不同,是形式的不同,不能和内容相不相同混为一谈,数是内容,「数字」「比」「百分数」「代数符号( x, y, z)」都是形式,这些形式都是用来「表示」数这个内容的,它们全都不是数本身。1、2、3、4 都是「数字」,是「符号」,不是数。但是它们都是用来表示同一个数学概念——「数」的。

    排列组合的表示形式不同,我们没问题,很容易理解,其形式的不同也从来不导致其中一种不再是排列组合。

    顺便,排列组合也是「数」。
        161
    DiamondbacK   42 天前
    @irobbin #158 @winterbells #159

    虽然是小学的内容,单独的 10% 当然有明确含义,就是 10/100,100 的 10% 就是 100 的 10/100。

    不然 100 的 10% 是什么,你如何跳过「单独明确」的 10% 来回答?
        162
    Orz   42 天前
        163
    winterbells   42 天前 via Android
    @DiamondbacK 行行行,你说的都对
    能不能找本书,里面某个式子有 20 + 10% 的?
        164
    DiamondbacK   42 天前
    @winterbells 对不起,还是你说得对,之后讨论不会再提及你。
        165
    irobbin   42 天前
    @DiamondbacK 10% = 0.1 是相等没错的,不过它表示的是某种比例,必须要有一个量一起计算才有意义。20 表示量,10%表示比例,两个不一样的东西请问怎么相加? 20 只鸡+10% = ???
        166
    yazinnnn   42 天前
    20%+10%=0.22
    10%+20%=0.12

    菊花 P30P
    --------------

    在一些人眼里'+'已经算一种过程,而不是运算符了吧

    反正加法交换律已经不适用了

    --------------
    在两个数的加法运算中,在从左往右计算的顺序,两个加数相加,交换加数的位置,和不变。 [1] 例如:
    字母:a+b=b+a a+c=c+a
        167
    justlgx   42 天前
    都散了吧,在 v2 里搞这种小学算术智力题,不要扯这个那个,学过抽象代数么?
        168
    tearain   42 天前
    我真是服了,说什么呢,加个括号不会吗,没学过小学数学?
        169
    tearain   42 天前
    @tearain 打扰了,当没看到我这条吧。。。
        170
    vx2018   42 天前
    基础伤害 20,购买 xx 之刃伤害增加 10%.。。
        171
    secsilm   42 天前   ♥ 1
        172
    EricXuu   42 天前
    这不是计算器的 feature 么?就以前那种“真人语音”计算器,还有一个好玩的 feature,连按运算符就可以重复这个运算。
    5 - - 3 = 2
    4 = 1
    9 = 6
    减少了很多工作量
        173
    sycxyc   42 天前
    英文维基提到: In general, a change of x percent in a quantity results in a final amount that is 100 + x percent of the original amount (equivalently, (1 + 0.01x) times the original amount).
        174
    hst001   41 天前 via Android
    不同计算器不一样,有的加减%是以增长率算的。不过我觉得这样设计不妥,因为把符号改成乘除的时候就没增长率的概念了,又变成正常的计算,设计上不统一。
        175
    Yvette   41 天前
    @DiamondbacK 我给的那个图里的表达恰恰就是百分数不是数的例子。因为如果 0.208 直接就等于 20.8%,那等式左边的那个 100 的表示方式就毫无意义。之前的回复中也提到过,我自己从小收到的教育是把分数变成百分数要乘以 100%,然而我印象中见过的所有北美的例子都是乘以 100,所以对这个有印象。所以刚好跟你说的相反,我看到的任何例子全是支持「北美语境的数学中百分数不是数」这个结论的。

    我相信 "percentage is number" 这个说法单独来看没什么错,只是当与数字混用的时候,百分数不能直接变成一个数,而是代表着一个百分比的语境。当单独使用没有语境的时候,自然而然地就默认成了 1 的 x%,这也是为什么计算器中 10% + 20 = 20.1,因为百分之十没有语境。

    当然我说的这些都是我自己学习过程中的经验所总结的,不排除是约定俗成的用法或者我的归因错误。但除非有直接证据能把我所看到过的这些作业题以及课本里面的百分数全部与对应的小数划全等号,否则我依然觉得这个计算器的处理方式完全没问题。
        176
    Yvette   41 天前
    @DiamondbacK 补充另一个我翻到的用例,跟主贴里的用法一模一样, 机械工业出版社出的《测量系统应用于设计下册》第 216 页:
        177
    jinliming2   41 天前 via iPhone
    因为百分数 % 存在上下文的关联,所以教材上面都会尽可能避开,只有在专门学到 % 概念的时候才会让你去写。
    而一般用到的情况只有出现在题目中,或是出现在答案中。在题目中时,因为有上下文,所以根据上下文确定 % 的意义,而在答案中,一般是做题人用语言进行描述,就带了上下文。而在做题的过程中,通常是避免出现 % 的,而是直接用小球或分数进行运算,因为如果在做题过程中用到 %,就容易出现上下文混乱,将计算结果转为百分数,后面是跟一个 100 作为后缀,还是跟一个 ×100%,都存在或多或少的歧义。
        178
    douglarek   41 天前 via Android
    不知道为什么,我觉得计算器算的对啊,正常人肯定会理解 20 加上 10% = 20 + 20 × 10% = 22,这特么有什么问题,我就不明白了杠精什么,一个个显得你们多能似的
        179
    taaaang   41 天前
    难道只有我认为百分号只应该出现在结果中而不是表达式中?
        180
    weiruanniubi   41 天前
    有问题吗?
    20 的百分之十是 2.
    所以结果等于 22 啊?
        181
    judeng   41 天前
    @douglarek 不,是你很能啊,生活在国外?
        182
    harley27   41 天前
    10 = 10/100 = 0.1
    于是结果是 20.1
    有什么问题吗?
        183
    harley27   41 天前
    @harley27 我是说,这计算器是不是有什么问题
        184
    annielong   41 天前
    支持%是纯数,相当于 X / 100,数值上计算 100*10%也是等于 100*0.1 的,包括计算的时候不也是换成 X/100,然后再计算的
        185
    Amyclarence   41 天前
    是不是特定情况下的语法糖,那不然 10%+20 等于什么?如果按 10%非纯数来说,那么这个算式不成立,如果按纯数来说,如果 10%+20 !=20+10%不就说明:20+10%=22 本身不是满足交换律的四则运算吗
        186
    annielong   41 天前
    @MIUI 小凡 指出,“ 10%+10%”是目前全球标准的计算逻辑,最早的电子计算器并没有%,是后来加入的。作为后续改进,它一定程度上解决了计算场景中的常用痛点,尤其是在西方人计算折扣、小费、利息等场景时,这样的计算逻辑会变得无比实用
        187
    sugars   41 天前
    macos 上计算器也是=22
        188
    secsilm   41 天前
    @annielong MIUI 的计算器计算 20 + 10% 结果是 20.1,因为在输入%的时候就自动变成了 0.1
        189
    philander   41 天前
    不是,这就是一个消费的问题啊,比如消费了一百,要给 10%消费,你拿 100*10%的结果+100 不就完了吗,为啥你们越扯越复杂了呢
        190
    annielong   41 天前
    @secsilm 版本不同吧,我的 9.6,输入 20 后在输入 10%直接显示 2,手机上直接是带入了上一个输入数进行了计算,
        191
    starsriver   41 天前 via Android
    老实话:这个是汇编的锅。

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

    做单片机的时候,c 语言前项参数没有的时候编译为汇编机器码会自己往前位移十六位。。当初做实验有一定的概率复现。原因就是这个
        192
    chanywn1   41 天前
    20 + 10% ?= 20 + 20 * 10%
    1  2  
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2615 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 40ms · UTC 14:44 · PVG 22:44 · LAX 07:44 · JFK 10:44
    ♥ Do have faith in what you're doing.