亲们,四舍五入保留两位小数,这样的变成为什么不可以?int n;n=(int)(h*100+0.5);return n/100.0;求解答,谢谢
#include <stdio.h>
float fun (float h)
{
int n;
n=(int)(h*100+0.5);
return n/100.0;
}
main( )
{ float a;void NONO ();
printf ("Enter a: "); scanf ( "%f", &a );
printf ( "The original data is : " );
printf ( "%f \n\n", a );
printf ( "The result : %f\n", fun ( a ) );
NONO( );
}
void NONO ()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
输出数据,关闭文件。 */
int i ;
float a ;
FILE *rf, *wf ;
rf = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i < 20 ; i++) {
fscanf(rf, "%f", &a) ;
fprintf(wf, "%f\n", fun(a)) ;
}
fclose(rf) ;
fclose(wf) ;
}
你代入数字算一下吗,代入 1234.567的话,1234.567*100=123456.7,123456.7+0.5=123457.2;123457.2/100.0=1234.57