鱼C论坛

 找回密码
 立即注册
查看: 2126|回复: 5

[已解决]printf函数中的f转换字符的不懂之处

[复制链接]
发表于 2020-10-16 20:09:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
兄弟们先看看小甲鱼给的例子:
#include <stdio.h>

int main()
{
        
        float c = 3.14;
        double d = 3.141592653;

        printf("圆周率是:%.2f\n", c);
        printf("精确到小数点后9位的圆周率是:%11.9f\n", d);

        return 0;
}

就是这个例子,我中间省略了一点。
我的问题是在使用转换字符f的时候输出时要用%f,例子中有两个 ,一个是%.2f,一个是%11.9f,这两个有什么不同,怎么区分吗?还是说给douuble定义了以后f前要加11.几,那个几就是小数点后几位。
最佳答案
2020-10-16 20:14:41
本帖最后由 昨非 于 2020-10-16 20:29 编辑

%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。

关于printf()格式输出,详情请参考:
https://blog.csdn.net/whatday/article/details/8675549

满意的话还请设个最佳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-16 20:14:41 | 显示全部楼层    本楼为最佳答案   
本帖最后由 昨非 于 2020-10-16 20:29 编辑

%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。

关于printf()格式输出,详情请参考:
https://blog.csdn.net/whatday/article/details/8675549

满意的话还请设个最佳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-16 20:29:35 | 显示全部楼层
兄弟,太专业了,没看懂,刚刚看了两天视频还没有完全理解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-16 20:30:50 | 显示全部楼层
dengjiaxi 发表于 2020-10-16 20:29
兄弟,太专业了,没看懂,刚刚看了两天视频还没有完全理解。

意思就是m是小数点前后的总位数,n是小数点后的位数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-16 20:34:02 | 显示全部楼层
就比如:我打印3.141592653的时候,设置为
printf("精确到小数点后9位的圆周率是:%5.3f\n", d);
也就是总共五位数,三位小数
输出结果就是
精确到小数点后9位的圆周率是:3.142
可以看到,3前面有个空格,加上小数点后面的三位,一共五位
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-16 20:35:05 | 显示全部楼层
OK谢谢老哥了,太感谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 00:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表