鱼C论坛

 找回密码
 立即注册
查看: 1880|回复: 6

[已解决]关于格式化占位符的小白问题! 请教

[复制链接]
发表于 2018-8-21 15:33:54 | 显示全部楼层 |阅读模式

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

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

x
刚看完甲鱼老师的S1E4 变量,然后看了看printf的函数文档,里面写的有格式化占位符的语法。

刚好这章节练习题里面有一个使用这个的
printf("右对齐,保留2位:%10.2f\n", 3.1416);
printf("左对齐,保留3位:%-10.3f\n", 3.1416);

这两行我都基本理解了    大致意思是
   
宽度选为10  显示的位数不够的话   剩下的用空格来凑   如果flags选择是0   则用0来凑够宽度

请问下我这么理解可以么?


但是我不太理解的如下图所示    为什么我这么弄他不显示0呢?
难道不应该显示成
左对齐,保留3位:3.14200000 嘛?


最佳答案
2018-8-21 15:37:00
左对齐,保留三位小数,那么这个数只会向左靠拢并忽略掉右边不需要保留的数字。
1.png
2.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-21 15:36:51 | 显示全部楼层
保留3位就是显示3位的意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-21 15:37:00 | 显示全部楼层    本楼为最佳答案   
左对齐,保留三位小数,那么这个数只会向左靠拢并忽略掉右边不需要保留的数字。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-21 15:37:13 | 显示全部楼层
本帖最后由 claws0n 于 2018-8-21 15:45 编辑

只有 0.3f 三位小数,如果没有\n,接 printf() 就会是有10个数字的空位

补充:
如果小数补 0,会误以为是精度提高了,从 float 变 double 或之类的
如果要小数补零,0.5f,但是那个就不会管小数前面有几位了,所以一般不这么做
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-21 15:46:53 | 显示全部楼层
楼上几位我都很感谢你们   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-21 15:48:06 | 显示全部楼层
claws0n 发表于 2018-8-21 15:37
只有 0.3f 三位小数,如果没有\n,接 printf() 就会是有10个数字的空位

补充:

感谢你哈- -   最佳已经给2楼了。。。 不好意思哈  刚我又去想了想   想通了- -

既然选择了精度。。。后面的自然就舍去了   刚才绕不开弯了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-21 15:52:46 | 显示全部楼层
coxtor 发表于 2018-8-21 15:48
感谢你哈- -   最佳已经给2楼了。。。 不好意思哈  刚我又去想了想   想通了- -

既然选择了精度。。 ...

问题解决就好 ^_^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-30 06:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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