一道有趣的难题...
题目:请编写一个函数float fun(double h),函数的功能使对变量h中的值保留2位小树,并对第三位进行四舍五入(规定h中的值为正数)。小弟的算法:float fun(double h)
{ int x;float s;
h=h*1000;
x=(int)h;
if(x%10<5) x=x-x%10;
else x=x+(10-x%10);
s=(float)x;
s/=1000;
return s;
}
答案算法:float fun (float h)
{long t;
float s;
h=h*1000;
t=(h+5)/10;
s=(float)t/100.0;
return s;}
事实证明答案算法和我自己的算法都算不出正确答案,可能是数据溢出造成的,请各位高手帮忙!小弟先谢过了~