#include
using namespace std;
//c++中,编写一个函数float fun(double h),函数的功能是对变量h中的值保留2位小数并对第3位进行四舍五入
float fun(double h){
int a=h*1000;
int b=h*100; //b为小数点前3位数
int c=a-10*b; //c为小数点第三位的数字
if(c>=5) b+=1;
else b=b;
double m=(double)b/100;
return m;
}
int main(){
double h;
cout<<"输入一个小数"< cin>>h; cout< return 0; }
//调用math库中的floor函数实现最简单
#include
#include
using namespace std;
float fun(double h)
{
return static_cast
}
int main()
{
cout<<"请输入一个小数:";
double h;
cin>>h;
cout<<"保留2位小数并对第3位进行四舍五入后的数为:"< }
做不到,至少不能完全做到,因为输出格式和这个函数没关系。
输出才可以做到真正的四舍五入。
计算机内的浮点数表示是二进制的,都是 0舍1入。 虽然效果差不多,但是很难控制。
四舍五入,只有10进制表示才能完全做到。
否则会有表示误差的。
你做了一个函数,并表示,确实能够四舍五入,没问题。忽然某一天,你发现对于,某个浮点数,这个函数不能完全做到,四舍五入,还有可能会溢出(上溢或者下溢),你会很头疼!!!
float fun(double h)
{
int temp1=int(h*1000);
int temp2=int(h*100)*10;
if( (temp1-temp2)>4)
temp2++;
float res=temp2/100.0f;
return res;
}