coxtor 发表于 2018-8-21 15:33:54

关于格式化占位符的小白问题! 请教

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

刚好这章节练习题里面有一个使用这个的

printf("右对齐,保留2位:%10.2f\n", 3.1416);
printf("左对齐,保留3位:%-10.3f\n", 3.1416);

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

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


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


BngThea 发表于 2018-8-21 15:36:51

保留3位就是显示3位的意思

PythonWorld 发表于 2018-8-21 15:37:00

左对齐,保留三位小数,那么这个数只会向左靠拢并忽略掉右边不需要保留的数字。

claws0n 发表于 2018-8-21 15:37:13

本帖最后由 claws0n 于 2018-8-21 15:45 编辑

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

补充:
如果小数补 0,会误以为是精度提高了,从 float 变 double 或之类的
如果要小数补零,0.5f,但是那个就不会管小数前面有几位了,所以一般不这么做

coxtor 发表于 2018-8-21 15:46:53

楼上几位我都很感谢你们   {:10_256:}

coxtor 发表于 2018-8-21 15:48:06

claws0n 发表于 2018-8-21 15:37
只有 0.3f 三位小数,如果没有\n,接 printf() 就会是有10个数字的空位

补充:


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

既然选择了精度。。。后面的自然就舍去了   刚才绕不开弯了

claws0n 发表于 2018-8-21 15:52:46

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

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

问题解决就好 ^_^
页: [1]
查看完整版本: 关于格式化占位符的小白问题! 请教