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语言中如何进行四舍五入,求详细解释!!谢谢!的主要内容,如果未能解决你的问题,请参考以下文章