关于格式化占位符的小白问题! 请教
刚看完甲鱼老师的S1E4 变量,然后看了看printf的函数文档,里面写的有格式化占位符的语法。刚好这章节练习题里面有一个使用这个的
printf("右对齐,保留2位:%10.2f\n", 3.1416);
printf("左对齐,保留3位:%-10.3f\n", 3.1416);
这两行我都基本理解了 大致意思是
宽度选为10显示的位数不够的话 剩下的用空格来凑 如果flags选择是0 则用0来凑够宽度
请问下我这么理解可以么?
但是我不太理解的如下图所示 为什么我这么弄他不显示0呢?
难道不应该显示成
左对齐,保留3位:3.14200000 嘛?
保留3位就是显示3位的意思 左对齐,保留三位小数,那么这个数只会向左靠拢并忽略掉右边不需要保留的数字。 本帖最后由 claws0n 于 2018-8-21 15:45 编辑
只有 0.3f 三位小数,如果没有\n,接 printf() 就会是有10个数字的空位
补充:
如果小数补 0,会误以为是精度提高了,从 float 变 double 或之类的
如果要小数补零,0.5f,但是那个就不会管小数前面有几位了,所以一般不这么做 楼上几位我都很感谢你们 {:10_256:}
claws0n 发表于 2018-8-21 15:37
只有 0.3f 三位小数,如果没有\n,接 printf() 就会是有10个数字的空位
补充:
感谢你哈- - 最佳已经给2楼了。。。 不好意思哈刚我又去想了想 想通了- -
既然选择了精度。。。后面的自然就舍去了 刚才绕不开弯了 coxtor 发表于 2018-8-21 15:48
感谢你哈- - 最佳已经给2楼了。。。 不好意思哈刚我又去想了想 想通了- -
既然选择了精度。。 ...
问题解决就好 ^_^
页:
[1]