c语言中怎么四舍五入

 我来答
惠企百科
2022-12-02 · 百度认证:北京惠企网络技术有限公司官方账号
惠企百科
惠企百科网是一家科普类综合网站,关注热门中文知识,集聚互联网精华中文知识,本着自由开放、分享价值的基本原则,向广大网友提供专业的中文知识平台。
向TA提问
展开全部

# incloud <stdio>

int main(void)

{

float a ;

scanf(“%f”,&a);

a=(int)(a*1000+0.5)/1000.0;

printf (“%0.3f”,a);

return 0;

}

扩展资料

其他方法实现四舍五入:

int myround(double indata,int precision,double * outdata)

long pre = 1,i;

for(i = 0; i <precision; i ++)pre = pre * 10;

if(cy_FloatCompare(indata,0.00)> 0)

* outdata =(int)((indata * pre)+0.5)/100.00;

else  

* outdata =(int)((indata * pre)-0.5)/100.00;

return 0;


// cy_FloatCompare是浮点数与0比较的函数,假设它存在。返回值与strcmp相同。

高中生三baby
高粉答主

2018-05-09 · 说的都是干货,快来关注
知道小有建树答主
回答量:420
采纳率:96%
帮助的人:15.2万
展开全部

设 float x ; int  y ; 则有y=(int)(x+0.5)>(int)x?(int)x+1:(int)x进行上述运算后,y 的值就是 x 四舍五入的结果。

利用取整运算的截断特点实现。
比如:int a=0.75;取整后赋值给a的是0,小数点后面的被截断了。
如果要做整数的四舍五入,那么可以:a=(int)(0.75+0.5);取整后得到的与数学中四舍五入的结果一致,都是1;

如果要进行小数点后面的四舍五入,可以这样计算:
要保留小数点后面两位的小数,即在小数点后面两位上做四舍五入,0.756
float a=0.756,b; int x; b=a*100; b+=0.5; x=b; b=x/100;

运算是这样的:先将0.756乘以100,得到75.6,然后利用取值运算的截断做四舍五入,75.6+0.5=76.1取整后等于76,再除以100,得到结果:0.76

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2015-05-17 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
如果只是要求输出结果“四舍五入”,只要通过输出格式符控制即可。
例如:
double pi=3.1415926;
printf("%.4lf\n",pi);
可得输出为3.1416。
printf("%.2lf\n",pi);
可得输出为3.14。

如果是要把变量本身的值四舍五入到4位小数,则可以这样处理:
double pi=3.1415926;
pi=((int)(pi*10000+0.5))/10000.0;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aleda
2007-10-28 · TA获得超过1667个赞
知道小有建树答主
回答量:739
采纳率:100%
帮助的人:282万
展开全部
比如小数为 f

(float)((int)(f*100+0.5))/100.0

首先为了保留两位,乘以100,小数点向前两位, 然后+0.5取整保证是四舍五入 再转成 float形式或double形式 除以100 就OK了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
2018-03-25 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6191万
展开全部

将整数+5,再整除10,再乘以10,就可以了

参考代码:

#include<stdio.h>

int main()
{
int n=0;
scanf("%d", &n );
printf( "%d\n", (n+5)/10*10 );
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(17)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式