免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2079 | 回复: 2
打印 上一主题 下一主题

[数值计算] 有关四舍五入的奇怪问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-04-01 10:33 |只看该作者 |倒序浏览
遇到一个对数值计算进行四舍五入的问题,开始用bc -l 结果它的运算只是进行scale截断。
eg:
jk@Frodo ~ $ echo "scale=3;1/3" | bc -l
.333
jk@Frodo ~ $ echo "scale=3;1/6" | bc -l
.166
而且是没有0位的。
之后选择了awk进行计算,用printf进行控制。
可是,出现了这个情况:


jk@Frodo ~ $ awk 'BEGIN{printf "%.3f\n",1.0/6}'
0.167
jk@Frodo ~ $ awk 'BEGIN{printf "%f\n",1.0/6}'
0.166667
上边的运算四舍五入了,可是,下边的就坑了:

jk@Frodo ~ $ awk 'BEGIN{printf "%.3f\n",1.0/16}'
0.062
jk@Frodo ~ $ awk 'BEGIN{printf "%f\n",1.0/16}'
0.062500

怎么回事?
求助。

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
2 [报告]
发表于 2013-04-01 10:54 |只看该作者
回复 1# jack3801283

http://zh.wikipedia.org/zh-cn/%E ... 4%E8%A6%8F%E5%89%87
四舍六入五留双规则
   

论坛徽章:
0
3 [报告]
发表于 2013-04-01 11:26 |只看该作者
回复 2# jason680


     赞一个!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP