C语言问题 四舍五入程序

来源:百度知道 编辑:UC知道 时间:2024/06/14 18:13:42
1234.56 四舍五入到10位 得到1200.000000的程序怎么写啊。。(不用循环结构)
还有1234.56四舍五入到0.01位 得到1234.600000的程序

各位高手帮忙啊
10 和0.01也是变量 要用到的

//保留小数几位。都得
#include <stdio.h>
#include <conio.h>
#include <math.h>

float fun ( float h ,int *m)
{ int i;
float q;
*m=*m+1;
q=pow(10,*m);
h=(double)h;
h=h*q;
printf("%f\n",h);
i=(int)h;
printf("%d\n",i);
if(i%10>=5)
i=i+10;
printf("%d\n",i);
i=i-i%10;
printf("%d\n",i);
h=(float)i;
printf("%f\n",h);
h=h/q;
return h;
}

main( )
{
float a;
int m;
printf ( "Enter 小数: ");
scanf ( "%f", &a );
printf("保留几为小数:");
scanf("%d",&m);
printf ( "The original data is: ");
printf ( "%f \n\n", a );
printf ( "The result : %f\n", fun ( a ,&m) );

}

第一个int(1234.56/100+0.5)*100.0

第二个in