此前,我一般用某数据减去他的整数部分的结果与0.5,进行比较,来判断舍或是入。代码如下:
//输出浮点数a四舍五入之后的结果
int main()
{
float a;
cin>>a;
if(a-(int)a)<0.5;
cout<<(int)a;
else
cout<<(int)a+1;
return 0;
}
这样少许麻烦,会用到一个if条件句。更为简便的方法是,直接在原浮点数的基础上加上0.5,再取其小数部分。因为若是整数部分小于0.5,加上0.5之后小数部分小于1,这时其整数部分刚好就是舍了之后的结果;若是整数部分大于0.5,加上0.5后整数部分就是入了之后的结果。代码如下:
//请输出浮点数a四舍五入之后的值
int main()
{
float a;
int b=a+0.5;
cout<< b;
return 0;
}
此外,练题的时候遇到一种四舍五入求百分数的题
//及格人数为a,总人数为n,求及格率,并四舍五入以百分数的形式输出,百分号前的数为整数
int main()
{
float b=(a*1.0)/(n*1.0);//b为及格率的小数形式.分子分母有一项*1.0就可
int per;
per=(int)((b+0.005)*100);//b+0.005相当于四舍五入前百分号形式的及格率中,百分号前面的数加了0.5,在对其取整数部分
//这里也可以不写(int),因为per本身就是int类型
//也可以向上面所说的那样,写作per=b*100+0.5;
cout<<per<<"%";
return 0;
}