C语言 实数返还指定小数位数的四舍五入后的值■■原程序■■#include#includefloat 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(){ flo
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/06 05:27:57
C语言 实数返还指定小数位数的四舍五入后的值■■原程序■■#include#includefloat 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(){ flo
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);
}
C语言 实数返还指定小数位数的四舍五入后的值■■原程序■■#include#includefloat 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(){ flo
你要知道long的话是不计小数的,比如2/5是等于2,不是等于2.5
所以加0.5再转换成long的话就可以四舍五入了
比如 你最后结果得1.2,加0.5之后得1.7,转成long的话就是1
比如 你最后结果得1.7,加0.5之后得2.2,转成long的话就是2
是不是实现四舍五入了?