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

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-05-24
这个很简单的。
比如有一个浮点数float a,要四舍五入只要这样:
int ia = (int)(a + 0.5)。只要a的小数>=0.5,a+0.5的整数位就会进一,然后取整;
小于0.5呢,取整还是原数。
简单吧。追问

  #include int main (){ int a,b,cfloat d;while(scanf("%d%d%d",&a,&b,&c)!=EOF){ d=((a+b+c)/3.0); int id=(int)(d+0.5);printf("math=%d,eng=%d,comp=%d,average=%f",a,b,c,d);}return 0;}

  

本回答被提问者和网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网