c语言四舍五入是怎样的?

谢谢!

# incloud <stdio>

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 <precision; i ++)pre = pre * 10;

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-09-16
C语言没有四舍五入,只有全舍不入,即浮点型转整型时直接去掉小数位,保留整数位。
第2个回答  2008-09-16
整数的除法(必须除数和被除数都是整数,否则认为是浮点数的除法)的确是只舍不进的,但是对于浮点数的除法,跟数学中的四舍五入一样
例如对于下面的程序:
#include<stdio.h>
void main()
{
double a = 10.55555555;
printf("%lf\n", a);
printf("%lf\n", 2.0/3.0);
}
运行后结果是:
10.555556
0.666667
(系统默认的小数输出个数是6个)
第3个回答  2008-09-16
c语言在整形变量的运算中是只舍不入的,例如12/5,得2余2,但结果是2,不计余数,再如
47/7,得6余5,但结果还是6
浮点型变量运算可以根据你的需要保留相应的位数
例如float a=5,b=2,c;
c=a/b;
若输出的话,默认输出2.500000,当然你也可以根据自己的需要保留相应的位数,如printf("%.3f",c);即输出2.500(保留3位)
第4个回答  2008-09-19
全舍不入

需要实现四舍五入的时候就要使用double或者float类型的数进行运算然后if判断

http://zhidao.baidu.com/question/68502540.html刚好有个类似的问题本回答被提问者采纳