在这个底层代码中:
float j=9.01;
printf("%2.3f \n",j);
输出为9.010
,不应该为整个 j 保留 2个字符宽,其中包括 3 对于小数 - 所以它使得没有。在小数点之前, 9 消失,只打印 01 ?
我在哪里错了?
答案 0 :(得分:3)
字段宽度
在任何情况下,不存在或小的字段宽度都不会导致字段截断;如果转换结果比字段宽度宽,则扩展该字段以包含转换结果。
和
精确度
这给出了d,i,o,u,x和X的最小位数 转换,基数字符后显示的位数 a,A,e,E,f和F转换[...]
字段宽度太小,但字段永远不会被截断,因此无关紧要。
句点之后的部分显然是精确度,你需要三位数。