全部问题 > 当前问题

老师,想问一下,这个函数这样编写为何会有问题

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;



}


kbenz丶 2017-2-12 20:36:05

共 1 个回答

qqq 2017-2-13 12:53:48

你具体说的是什么问题?

你的代码可以实现基本的四舍五入功能啊,没有报错,但存在一个warning,是因为b=(int)a%10;这一句,右边是int型结果,却赋值给了左边的float型b变量,存在一个内在的强制类型转换,vc++报警告就是提醒你防止数据丢失。

问题来自: 编程题真题