# incloud
int main(void)
{
float a ;
scanf(“%f”,&a);
a=(int)(a*1000+0.5)/1000.0;
printf (“%0.3f”,a);
return 0;
}
扩展资料:
其他方法实现四舍五入:
int myround(double indata,int precision,double * outdata)
{
long pre = 1,i;
for(i = 0; i if(cy_FloatCompare(indata,0.00)> 0) * outdata =(int)((indata * pre)+0.5)/100.00; else * outdata =(int)((indata * pre)-0.5)/100.00; return 0; } // cy_FloatCompare是浮点数与0比较的函数,假设它存在。返回值与strcmp相同。
加0.5本来就是个权益之计,使用这个来做四舍五入这不是什么好习惯。
弄得程序乱七八糟的,程序的维护也变得很困难,不定那里漏了个0.5就会导致运算错误。
0.5满天飞的程序,可想而知。
math.h有专门的四舍五入函数,round(x)。
举个例子:
比如x=1.2,那么 (int)(x+0.5) = 1;四舍五入成功。
x=1.5,那么(int) (x+0.5) = (int)2.0=2。四舍五入也成功。
明白了吧。
实际上就是根据c语言的输出整数部分,加的一个巧妙的办法。
加上后尾数>0.5变成1.n了<0.5还是0.n现在直接取整数部分就是四舍五入的结果了!这在计算机来说那是最拿手了!