c语言,这个%2.2f是什么意思?

 我来答
写在枫叶上的故事
2018-12-09 · TA获得超过2.6万个赞
知道答主
回答量:164
采纳率:0%
帮助的人:2.6万
展开全部

%5.2f是输出格式中的%a.bf,表示输出的总长度最大值为5浮点数,并且保留2位小数。

在输出时,如果输出的位数没有大于5位,则按实际位数输出,如果输出的位数大于5,则截取前5位输出,并且小数点是不算位数的。

14.00只有4位输,位数没有大于5位,所以按实际位数输出14.00。

如:

1、“%5d ”要求输出宽度为5,而a值为15只有两位故补三个空格。

2、“%5.4lf”指定输出宽度为5,精度为4,由于实际长度超过5故应该按实际位数输出,小数位数超过4位部分被截去。

3、“%8.4lf ”由于指定精度为4位故截去了超过4位的部分。

4、“%8c ”指定输出宽度为8故在输出字符p之前补加7个空格。

扩展资料

C语言中%5.2f等格式字符串的一般形式为:[标志][输出最小宽度][.精度][长度]类型。(其中方括号[]中的项为可选项)。

1、输出最小宽度

十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。

2、精度

精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。

3、长度

长度格式符为h、l两种,h表示按短整型量输出,l表示按长整型量输出。

参考资料来源:百度百科——printf()

意法半导体(中国)投资有限公司
2023-06-12 广告
%f是float的控制符 你定义的double,用f肯定控制不了 double的格式控制符是%lf,%.2lf就是把double输出为2位小数 %2f是把float的输出为2位小数 %2f是把float的所有位数输出2位,包括小数点,如果不... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
百度网友9cc52170e9
2018-03-31 · TA获得超过2.1万个赞
知道小有建树答主
回答量:140
采纳率:100%
帮助的人:4.9万
展开全部

f是float的缩写,6是长度,2是小数保留位数。6.2写与不写对结果没什么影响。其实就是保留两位小数,也可以写成%.2f。

其中2位是小数,即%2%2,右端靠齐.2f指定输出的数据共占2列,%.2f,小数点前位数自动等于小数点后尾数。

【延展】

C语言:

是1972年由美国的Dennis Ritchie设计发明的,并首c语言宣传图 c语言宣传图

[1]次在UNIX操作系统的 DEC PDP-11 计算机上使用。它由早期的编程语言BCPL(Basic Combind Programming Language)发展演变而来,在1970年,AT&T贝尔实验室的Ken Thompson根据BCPL语言设计出较先进的并取名为B的语言,最后导致了C语言的问世。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nero2014
推荐于2017-11-25 · TA获得超过177个赞
知道答主
回答量:30
采纳率:100%
帮助的人:31.5万
展开全部
%n.mf的打印格式表达意思如下:
首先%f是打印实数数据(float double类型的数据)
n表示有效数字个数,m表示小数点后的位数
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
985967518
2015-11-01 · 知道合伙人教育行家
985967518
知道合伙人教育行家
采纳数:18027 获赞数:109866
14年本科毕业于河南理工大学,至今就读于河南理工大学攻读硕士学位,从事编程学习已有5年。

向TA提问 私信TA
展开全部
%2.2f指定输出的数据共占2列,其中2位是小数,右端靠齐,%.2f,小数点前位数自动等于小数点后尾数,即%2.2f
追问
。你举几个例子看看
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
得实息
2020-12-13
知道答主
回答量:16
采纳率:0%
帮助的人:7959
展开全部

这么多回答没有一个有效的,悲哀!

这是运行结果

先说个简单点的:.2f明白什么意思吧?保留2位小数。

比如i =12.34567,如果.4f就是保留4位小数,那么输出值就是12.3457。本来输出值是12.3456,因为四舍五入进一位输出值就成了12.3457。

理解了上面的再来说说%2f,再理解2f之前先来理解一下%4d,只有理解了%4d,2f就很好理解了。举个例子:

int i=1;

printf("i=%4d\n",i);

这是输出结果:

看到没有,i等于四个空格+1即:i=    1。

2f常理,如果把上面的换成float i=1;printf("i=%2f\n",i);运行结果:

这是float类型后面保留有六位小数,因为是6位小数加上”.“再加上”1“就是八位,2f自然是看不出来,如果把2f换成9f效果马上立竿见影。

这是改成9f的效果

i等于1个空格+1+点+6位小数即:i= 1.000000,所以在这里2.2f也好还是.2f也好,区别不大

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式