C++中setprecision函数的问题

软件和网站开发以及相关技术探讨
回复
头像
tiancaiamao
帖子: 149
注册时间: 2007-11-06 22:58
来自: 武汉

C++中setprecision函数的问题

#1

帖子 tiancaiamao » 2008-01-23 10:54

今天发现了一个好诡异的问题,关于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写的
回复