问题描述:
C语言 实数返还指定小数位数的四舍五入后的值
■■原程序■■
#include
#include
float round(float x,int n)
{ float z;
long i;
i=pow(10,n);
z=(long)(x*i+0.5)/(float)i; 为什么+0.5就可以四舍五入?■■■■
return z;
}
main()
{ float x,y;
int n;
printf("input x n\n");
scanf("%f%d",&x,&n);
y=round(x,n);
printf("x=%f,round(%f)=%f\n",x,x,y);
}
■■原程序■■
#include
#include
float round(float x,int n)
{ float z;
long i;
i=pow(10,n);
z=(long)(x*i+0.5)/(float)i; 为什么+0.5就可以四舍五入?■■■■
return z;
}
main()
{ float x,y;
int n;
printf("input x n\n");
scanf("%f%d",&x,&n);
y=round(x,n);
printf("x=%f,round(%f)=%f\n",x,x,y);
}
问题解答:
我来补答展开全文阅读