当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : C++中setprecision函数的问题
帖子发表于 : 2008-01-23 10:54 
头像

注册: 2007-11-06 22:58
帖子: 149
地址: 武汉
送出感谢: 0 次
接收感谢: 0 次
今天发现了一个好诡异的问题,关于setprecision和四舍五入
代码:
   double x;
        cout<<"请输入一个小数"<<endl;
   cin>>x;
   cout<<"四舍五入后保留两位小数得到"<<setprecision(2)<<setiosflags(ios::fixed)<<x<<endl;

本来想这样得到四舍五入的,但结果不是想要的,setprecision在5的处理上不是按5入处理的
5有时被舍,有时又入了,这是为什么
有谁能讲一下setprecision到底用的是什么算法进行取舍的
不甚感激
:D

ps:下面是我实验的一些数据
引用:
请输入一个小数
1.105
四舍五入后保留两位小数得到
1.10
请输入一个小数
1.115
四舍五入后保留两位小数得到
1.11
请输入一个小数
1.125
四舍五入后保留两位小数得到
1.12
请输入一个小数
1.135
四舍五入后保留两位小数得到
1.14
请输入一个小数
1.145
四舍五入后保留两位小数得到
1.15
请输入一个小数
1.155
四舍五入后保留两位小数得到
1.16
请输入一个小数
1.165
四舍五入后保留两位小数得到
1.17

我用的anjuta写的


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译