有那位大虾详细上点说给我听!

来源:百度知道 编辑:UC知道 时间:2024/05/16 08:05:55
float fun ( double h )
{
long x=(h*100+0.5);
return x/100.0;
}
这是一个函数float fun(double h),函数的功能是对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值为正数)的程序
有那位大虾详细上点说给我听!
x=(h*100+0.05),为什么最后X还要除100啊!

举个例子:double h=1.14723; /*预求结果为1.15*/

调用函数时候,h*100+0.5===115.223

因为x声明的是long,所以x=115;/*长整型不带小数点*/

return x/100.0; /* x为long型,100.0为实型,自动转换成精度高的实型。*/

那函数返回的就是 x/100.0 ===1.15了

它先前乘了100,
当然要除回去……

原理很简单,
小数点右移两位以后,
十分位四舍五入,
得到的结果赋值过程中对小数截尾
(注:因为x是长整型,自动完成数据类型转换),
然后小数点左移两位
(同样自动完成数据类型转换,转换为实型,因为100.0是实型)。