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

据说%.3f是可以,但我自己测试时不行......如果不行的话,请问一般怎么做???... 据说%.3f是可以,但我自己测试时不行......
如果不行的话,请问一般怎么做???
展开
 我来答
White_MouseYBZ
推荐于2017-10-03 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6384万
展开全部

C语言中对于浮点数输出的四舍五入是自动进行的。在浮点数的有效位数范围内,当要求保留小数点后n位时,系统会自动根据第n+1的值自动进行四舍五入操作。以下代码可以验证:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    double pi=3.141592653589793;
    printf("%.15f\n",pi);
    printf("%.3f\n",pi);//保留3位小数,因第4位是5而进位
    printf("%.5f\n",pi);//保留5位小数,因第6位是2而舍弃
    return 0;
}

输出是:

3.141592653589793

3.142

3.14159

xoaxa
推荐于2017-09-13 · TA获得超过8607个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3405万
展开全部
%.nf,其中n是字面常量,功能是输到小数点后面的第n位,第n + 1位“四舍五入”。下面是在VC++ 6.0环境下的测试结果。
/*
0.234562
0.235
0.2346
0.23456
Press any key to continue
*/
#include <stdio.h>
int main() {
float f = 0.2345623f;
printf("%f\n",f);
printf("%.3f\n",f);
printf("%.4f\n",f);
printf("%.5f\n",f);
return 0;}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a842543374
2012-12-30
知道答主
回答量:17
采纳率:0%
帮助的人:8.5万
展开全部
%.3f 的意思是输入小数点之前的三位数,比如说: 12.1234 会输出:12.123,

0.1236会输出:0.123 。之后的数字会被直接无语!
你可以用下面的方法(不过这个方法只适合正数,负数就不行了)
float a = 1.1235; //保留到小数点后三位
float b =(int)((a * 1000) + 0.5) / 1000.0;
//output b = 1.124;
追问

 

好奇怪,这次又可以了,上次是输出2个2.34。。。。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
彤慧利CW
2012-12-30 · 超过17用户采纳过TA的回答
知道答主
回答量:55
采纳率:100%
帮助的人:32万
展开全部
加个0.5再取整数,如:1.4 0.5取整1;1.5 0.5取整2。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式