发布网友 发布时间:2022-04-21 23:39
共5个回答
热心网友 时间:2023-08-03 11:59
# 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相同。
热心网友 时间:2023-08-03 12:00
C语言没有四舍五入,只有全舍不入,即浮点型转整型时直接去掉小数位,保留整数位。
热心网友 时间:2023-08-03 12:00
整数的除法(必须除数和被除数都是整数,否则认为是浮点数的除法)的确是只舍不进的,但是对于浮点数的除法,跟数学中的四舍五入一样
例如对于下面的程序:
#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个)
热心网友 时间:2023-08-03 12:01
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位)
热心网友 时间:2023-08-03 12:02
全舍不入
需要实现四舍五入的时候就要使用double或者float类型的数进行运算然后if判断
http://zhidao.baidu.com/question/68502540.html刚好有个类似的问题