c语言的四舍五入

为什么要加0.5?
2024-12-29 06:05:54
推荐回答(5个)
回答1:

# 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相同。

回答2:

加0.5本来就是个权益之计,使用这个来做四舍五入这不是什么好习惯。
弄得程序乱七八糟的,程序的维护也变得很困难,不定那里漏了个0.5就会导致运算错误。

0.5满天飞的程序,可想而知。

math.h有专门的四舍五入函数,round(x)。

回答3:

举个例子:
比如x=1.2,那么 (int)(x+0.5) = 1;四舍五入成功。
x=1.5,那么(int) (x+0.5) = (int)2.0=2。四舍五入也成功。
明白了吧。

回答4:

实际上就是根据c语言的输出整数部分,加的一个巧妙的办法。

回答5:

加上后尾数>0.5变成1.n了<0.5还是0.n现在直接取整数部分就是四舍五入的结果了!这在计算机来说那是最拿手了!