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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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语言中可以使用递归 (即函数调用自身函数), 其不节省储存器开销也不加快执行速度, 只是使程序紧凑便于理解。

参考技术A 这个很简单的。
比如有一个浮点数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;

  

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

以上是关于c语言中如何进行四舍五入,求详细解释!!谢谢!的主要内容,如果未能解决你的问题,请参考以下文章

C语言编写程序,对一个double型数据进行四舍五入,要求保留两位有效小数,求算法。

C语言中如何对浮点数进行四舍五入?

C语言四舍五入保留两位小数

c语言中有没有进行四舍五入的函数

C语言如何实现在运算过程中的四舍五入保留两位小数

c语言中怎么四舍五入