【译】计算器的百分号键是如何工作的?

本篇博客为译文,原文为Microsoft开发者博客The Old New Thing中的一篇博文,原文地址:https://blogs.msdn.microsoft.com/oldnewthing/20080110-00/?p=23853/ Windows计算器百分比符号的工作方式与那些便宜的口袋计算器(通常称为四则计算器,虽然它们现在有大约六种功能)相同。首先要了解的是,这些口袋计算器的百分号键不是为数学家和工程师设计的。它是专为你的日常生活做一些简单的计算。因此,这个按键的一些行为对于你这样的工程师来说,可能是奇怪甚至错误的。但对于一个普通人来说,它干得很好。至少在理论上是这样的。 让我们从普通人的角度去看它。假如你想算一下一件72美元的毛衣在算上5%的税(注1)之后一共要多少钱。拿出你的口袋计算器(注2)(如果你没有口袋计算器就打开windows自带的)并输入 72 + 5% = 结果是75.6,或者说是75.60美元,这是正确答案,因为72的5%是3.6,加上72就得到75.6. 同样的,假如这件毛衣正在以20%的折扣销售,那么销售价格是多少呢? 72 - 20% = 结果是57.6,或者说是57.60美元。这没错,因为72的20%是14.4,用72减去14.4就是57.6. 你也可以使用百分号进行链式计算。比如在加上5%的税之后,你需要为那件有20%折扣的毛衣付多少钱呢? 72 - 20% + 5% = 结果是60.48.一个数学家或工程师可以通过以下等效计算得出相同的结果 72 × 0.80 × 1.05 = 好了,现在我们看到计算器的产品设计者认为百分号键是如何使用的了,再让我们来看看计算器的工程师是如何去实现这些要求的。当用户输入A + B% = 时,展开后结果应该是A × (1 + B/100) 或者A + (A × B/100)。类似地,当用户输入A − B % =时,结果应为A × (1 − B/100) 或者 A − (A × B/100)。 “啊哈!”计算器工程师说,“我们可以通过这样定义百分号键来实现这个结果”: 当用户输入第一个值,运算符,第二个值,然后是百分号键时,前两个值相乘,乘积再除以100,用得到的结果取代处于算式中的第二个值。 让我们先来看一下这个算法。 输入 注释 72 第一个值是72 + 加法操作 5 第二个值是5 % 72 × 5 ÷ 100 = 3....

April 1, 2017 · 1 分钟 · Remo