c语言中如何进行四舍五入,求详细解释!!谢谢!

如题所述

方法一:

#include<stdio.h> 

int main()

{

    double d1,d2,d3;

    d1=-3.1415926;

    d2=(int)(d1*10+0.5)*0.1;

    printf("d1=%f,保留一位小数的结果为:%.1f\n",d1,d2);

    d3=(int)(d1*1000+0.5)*0.001;

    printf("d1=%f,保留三位小数的结果为:%.3f",d1,d3);

总结四舍五入保留n为小数

(int)(x*10的n次方+0.5)*10的负n次方;

其次这个方法对负数无效;如果非要用可以先取正数部分算,最后加上负号

}

方法二:

使用round()函数。

#include"stdio.h"

#include"math.h"

void main()

{

float x;

scanf("%f",&x);

int y = round(x);

printf("%d",y);

}

扩展资料:

C语言编写注意事项:

1、%运算符不能应用与float或double类型。

2、char类型转换为int型时, 无法判断它是signed还是unsigned.这样其结果有可能为负数, 因此转换时尽量指定signed和unsigned限制符。

3、++i与i++不同之处: ++i是先+1在使用, i++是先使用i在递加1。

4、三元运算符"?:" 第一个表达式的括号不是必须的,但是由于三元表达式的优先级非常低,我们还是将第一个表达式用()括起便于阅读和理解。

5、C语言中可以使用递归 (即函数调用自身函数), 其不节省储存器开销也不加快执行速度, 只是使程序紧凑便于理解。

温馨提示:内容为网友见解,仅供参考
无其他回答

c语言中如何进行四舍五入,求详细解释!!谢谢!
方法一:include<stdio.h> int main(){ double d1,d2,d3;d1=-3.1415926;d2=(int)(d1*10+0.5)*0.1;printf("d1=%f,保留一位小数的结果为:%.1f\\n",d1,d2);d3=(int)(d1*1000+0.5)*0.001;printf("d1=%f,保留三位小数的结果为:%.3f",d1,d3);总结四舍五入保留n...

c语言,四舍五入代码的原理是什么?
1.C语言里面,四舍五入的原理就是满5进1。用代码实现就是加上0.5,再截去小数。2.对于浮点数。float x = 3.456; \/\/保留到小数点后两位 float y =(int)((a * 100) + 0.5) \/ 100.0;\/\/output b = 3.46;对于整数。float x ;int y ;y=(int)((x+0.5)>(int)x?(int)x+...

c语言四舍五入怎么表示
要用C语言实现四舍五入,有一个很巧妙的方法,仅使用int i=(int)(a+0.5)即可。如果遇到有负数的情况,只需要将加号改为减号即可。C语言中四舍五入这样表示:inta=100.453627。printf("%.1f",a+0.05);\/\/四舍五入到十分位。printf("%.2f",a+0.005);\/\/四舍五入到百分位。以此类推...

c语言中怎么四舍五入
int main(void){ float a ;scanf(“%f”,&a);a=(int)(a*1000+0.5)\/1000.0;printf (“%0.3f”,a);return 0;}

c语言中,如何实现对一个整型数字进行四舍五入?
c语言:取整型变量x中的第p位开始的n个bit位,可以采用位运算的方法。先向左移位,丢弃前面不需要的位,再通过向后移位,丢弃后面不需要的位,最后再向左移位到原来的位置,就可以了。1\/\/num&(num-1)=(1111)&(1110)=(1110)2\/\/num&(num-1)=(1110)&(1101)=(1100)3\/\/num&(num-1)=(...

C语言四舍五入的问题???
没能正确地做四舍五入是因为有效数字个数超出 double 允许范围,尾部数据不精确了。有效数字少一点时,我的编译器(VC++ 6.0) 好像能做四舍五入。例如:include<stdio.h> include<stdlib.h> main(){ double a,b,c,d;a=1.12345;b=-1.12345;c=1.12344;d=-1.12344;printf("a=%.4lf ...

C语言怎么四舍五入
incloud <stdio> int main(void){ float a ;scanf(“%f”,&a);a=(int)(a*1000+0.5)\/1000.0;printf (“%0.3f”,a);return 0;}

c语言如何四舍五入 跟 进一法除法 的 算法
include<stdio.h> int main(){int a,b;scanf("%d%d",&a,&b);printf("%d\/%d(四舍五入)=%d\\n",a,b,(int)((float)a\/b+0.5));printf("%d\/%d(进一法)=%d\\n",a,b,(int)(float)(a+b-1)\/b);return 0;}

c语言四舍五入的设计思路是怎样的?求详细解答。。。
else a=int(x);\/\/c语言中类型转换是用向0取整的 printf("%d\\n",a);} 如果还需要保留多少位小数,可以这样设计程序:以保留3位为例,x先乘1000,再按上面程序做判断,得到a值,再把a除以1000。举个例x=1.2359 y=x*1000; \/\/y=1235.9减去整数部分后 i=y-int(y);\/\/i=0.9; 这时可...

如何用C语言对实数四舍五入 ?? 谢谢各位了
思路是:如上,对小数点后第三位四舍五入,那么你给该数加上0.005,这样,如果第三位大于5,那么它会入上去一位,如果第三位小于5,那么它就不会进位。上面代码a=((int)(a*100+0.5))\/100.0;就是经行了这样的操作。将a乘100,变为134.6,然后加0.5,由于小数为6,那么加5后进位,...

相似回答