老师,想问一下,这个函数这样编写为何会有问题
float fun ( float h )
{ float a,b,c;
a=h*1000;
b=(int)a%10;
if(b>=5)
{a=a-b+10;}
else
{a=a-b;}
c=(float)a/1000;
return c;
}
你具体说的是什么问题?
你的代码可以实现基本的四舍五入功能啊,没有报错,但存在一个warning,是因为b=(int)a%10;这一句,右边是int型结果,却赋值给了左边的float型b变量,存在一个内在的强制类型转换,vc++报警告就是提醒你防止数据丢失。