
C语言%.4f与%3f代表是什么意思?
#include<stdio.h>voidmain(){floatx=67.8564,y=-789.124;printf("%8.2f,%8.2f,%.4f,%.4f,%...
#include<stdio.h>
void main()
{
float x=67.8564,y=-789.124;
printf("%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n",x,y,x,y,x,y);
}
输出结果
67.86, -789.12,67.8564,-789.1240,67.856400,-789.124023
前两个没疑问,第三四个和我预想结果相同可为什么谭老的书给的答案是
还有第五个和第六个,为什么是这个输出结果,是因为%3f的3无效吗? 展开
void main()
{
float x=67.8564,y=-789.124;
printf("%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n",x,y,x,y,x,y);
}
输出结果
67.86, -789.12,67.8564,-789.1240,67.856400,-789.124023
前两个没疑问,第三四个和我预想结果相同可为什么谭老的书给的答案是
还有第五个和第六个,为什么是这个输出结果,是因为%3f的3无效吗? 展开
7个回答
展开全部
C语言%.4f代表输出小数位为4的浮点数。%3f代表输出场宽为3的浮点数。
格式占位符(%)是在C/C++语言中格式输入函数,如scanf、printf等函数中使用。其意义就是起到格式占位的意思,表示在该位置有输入或者输出。其中,%f,%F,%e,%E,%g,%G 用来输入输出实数,可以用小数形式或指数形式输入输出。
可以在“%”和字母之间插进数字表示最大场宽。如:%9.2f表示输出场宽为9的浮点数,其中小数位为2,整数位为6。
对浮点数,若整数部分位数超过了说明的整数位宽度,将按实际整数位输出;若小数部分位数超过了说明的小数位宽度,则按说明的宽度以四舍五入输出。
扩展资料:
相关的格式占位符:
%a,%A 读入一个浮点值(仅C99有效)
%c 读入一个字符
%d 读入十进制整数
%i 读入十进制,八进制,十六进制整数
%o 读入八进制整数
%x,%X 读入十六进制整数
%f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。
%p 读入一个指针
%u 读入一个无符号十进制整数
%n 至此已读入值的等价字符数
%[] 扫描字符集合
%% 读%符号
参考资料来源:百度百科-格式占位符
参考资料来源:百度百科-printf()
展开全部
以%8.2f为例整数8表示宽度为8,也就是8个字符,而.2表示精度为2,也就是小数点后有2位
还有说一下,谭浩强书实在太坑,不建议学他的书
还有说一下,谭浩强书实在太坑,不建议学他的书
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
.代表小数点后的位数,3代表总的位数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个问题:第三第四个老谭的书错了,你理解没问题;
第二个问题:第五第六个是因为%3f的3表示:打印的浮点数“至少”占3个字符宽度,这里大于3个,自然就是无效咯。至于为什么小数点后6位小数,这是单精度浮点数精度决定的。
第二个问题:第五第六个是因为%3f的3表示:打印的浮点数“至少”占3个字符宽度,这里大于3个,自然就是无效咯。至于为什么小数点后6位小数,这是单精度浮点数精度决定的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
%3f 和%3.f是不同的,%3f相当于%f(3是无效的)
%3.f表示宽度为3
%3.f表示宽度为3
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |