老师我想问一下哪里错了呢
float fun ( float h )
{int d, p;
(int)p=h*1000;
d= p%10;
if(d<5)
h=(int)(p-d)/1000.0;
else
h=(int)(p-d+10)/1000.0;
return h;
}
你的变量类型转换不对啊。。
(int)p=h*1000;你这一句是想干嘛?p本来就是int型了,你为什么还要在前面强制转换成int。。你应该把(int)写在h*1000前面,也就是p=(int)(h*1000),下面代码的类型转换也是同样的问题,两个int类型转换是多余的啊。。你自己改改吧,还不行再问。
回复 qqq:
float fun ( float h )
{
int x, y;
x=(int)(h*1000);
y=x%10;
if(y<=4)
h=(x-y)*1.0/1000;
else
h=(x-y+10)*1.0/1000;
return h;
}
现在改为这个了,但运行后the original data is 1234.567017
result为1234.569946?这又是哪里出问题了?