c语言编成中有一个c语句不太明白,谢谢各位帮忙看一下是否这么理解!

来源:百度知道 编辑:UC知道 时间:2024/05/16 03:20:39
输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入后处理,然后输出此数,以便验证处理是否正确。
程序如下:
main()
{ double x;
printf("Enter x: ");
scanf(%lf,&x);
printf("(1) x=%f|n",x);
x=x*100; 这句话的意思是不管double型小数点后多少为都这么做吗?
x=x+0.5;
x=(int)x;
x=x/100;
printf("(2) x=%f\n"'x);

这个算法就是先把小数点右移两位,对第一个小数位进行四舍五入,取整数部分,再把小数点左移两位
举个例子,用这个算法来处理12.34n67…(是任意一位数)
乘以一百得1234.n67…
加0.5再取整数部分,若n小于5舍去,得1234,若n大于5则进1,得1235
除以100得12.34(12.35)
即X=INT(X*10^n+0.5)/10^n
n为保留的小数点位数

不是.只有对第三位小数四舍五入才是这样,如果是对第二位是x=x*10,对第四位的话,就应该是x=x*1000,依此类推