一道程序设计题 double类型变量舍入原则

题目:Theroundingrulesforsalestaxarethatforataxrateofn%,ashelfpriceofpcontains(np/100rou... 题目:
The rounding rules for sales tax are that for a tax rate of n%, a shelf price of p contains
(np/100 rounded up to the nearest 0.05)amount of sales tax.

然后给了几组数据例子:
输入商品价格14.99,tax rate = 10% 输出售价16.49
输入商品价格11.25,tax rate = 5% 输出售价11.85

问题:根据第一组数据计算:14.99*(1+10%) = 16.489 舍入成16.49还是想的通的
然而第二组数据就比较坑:11.25*(1+5%) = 11.8125 为什么舍入成11.85啦???

题目中的舍入原则没理解啊!!
谁来告诉我!
展开
 我来答
匿名用户
推荐于2016-02-08
展开全部
你不应该用 价格*(1+n/100) 得到的值作为舍入的值。
应该只算出来实际tax,对tax进行舍入(其实只会入,不会舍的),把舍入后的tax再加上原来价格作为出售价格。
14.99*0.1 = 1.499 ~~ 1.50
1.50 + 14.99 = 16.49

11.25*0.05 = 0.5625 ~~0.60 (在这里体现没有舍,只有入,rounded up,向上取0.05的倍数)
0.60 + 11.25 = 11.85

其实你的想通和想不通反过来了。
题目中说的得到的值进行舍入之后应该是0.05的倍数,所以你理解的16.49是不符合题目要求的舍入之后的要求的。而11.85就符合要求。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式