c语言中怎么保留小数2位

#include<stdio.h>voidmain(){doublea,b,c,d;scanf("%lf,%lf,%lf",&a,&b,&c);d=(a+b+c)/3;p... #include <stdio.h>
void main()
{
double a,b,c,d;
scanf("%lf,%lf,%lf",&a,&b,&c);
d=(a+b+c)/3;
printf("%2f\n",d);
}

明明已经只让他保留2位小数了。为什么输出答案的时候小数位数会是6位
展开
 我来答
wchyumo2011
2015-09-14 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2810万
展开全部

在c语言中一个数保留2位小数可以通过精度限定符来完成,精度限定符有一个点号后跟一个整数组成。

示例:

#include <stdio.h>
int main()
{
    dobule a = 1.23456;
    printf("%.2f\n", a);
    return 0;
}
/*
输出:1.23
*/

注意:这里保留小数是四舍五入的,即如果保留的小数位数的后一位大于等于5,则进1,否则舍去,如示例中的a的值改为1.23556,则会输出1.24。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
瓦力LOVER
2014-09-20
知道答主
回答量:4
采纳率:0%
帮助的人:2.6万
展开全部
把printf("%2f\n",d) 改为 printf("%2.2f",d) 就可以了

之所以会输出6位是因为浮点型数据默认输出的是小数点后6位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-09-20
展开全部
printf("%2f\n",d);//跟printf("%f\n",d);的效果在这是一样的

改成:printf("%.2f\n",d); //加小数点,后面数字是几就是保留几位小数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2020-03-11 · TA获得超过1.2万个赞
知道答主
回答量:10.4万
采纳率:2%
帮助的人:5084万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jq...7@163.com
2021-04-02 · TA获得超过1583个赞
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式