c++中,编写一个函数float fun(double h),函数的功能是对变量h中的值保留2位小数并对第3位进行四舍五入

2024-11-30 23:08:45
推荐回答(4个)
回答1:

#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;

}

回答2:

//调用math库中的floor函数实现最简单

#include

#include

using namespace std;

float fun(double h)

{

return static_cast(floor(h*100+0.5)/100);

}

int main()

{

cout<<"请输入一个小数:";

double h;

cin>>h;

cout<<"保留2位小数并对第3位进行四舍五入后的数为:"<

}

回答3:

做不到,至少不能完全做到,因为输出格式和这个函数没关系。

输出才可以做到真正的四舍五入。
计算机内的浮点数表示是二进制的,都是 0舍1入。 虽然效果差不多,但是很难控制。
四舍五入,只有10进制表示才能完全做到。
否则会有表示误差的。
你做了一个函数,并表示,确实能够四舍五入,没问题。忽然某一天,你发现对于,某个浮点数,这个函数不能完全做到,四舍五入,还有可能会溢出(上溢或者下溢),你会很头疼!!!

回答4:

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;
}