[C][入门]printf函数的控制符问题

printf函数的格式说明项是 [标志][输出最小宽度][.精度][长度]类型
如果标志的位置填 -,表示的意义为“数据宽度小于最小宽度时,结果左对齐,右边填空格”
而我想实现这个功能时,为什么右边填了0

   
   printf("The bigger number would be %-7f\n", max); //这个数字为9.2,应该小于宽度7
阅读 1.7k
2 个回答

C标准规定%f至少要显示六位有效数字,%-7f,六位有效数字再加上一个小数点,刚好填充七个字段
所以,我猜你的输出结果应该是9.20000

上面答案有问题,更正如下:

%f默认会打印所有的整数部分,并打印到小数点后六位
这样,9.200000加上小数点一共8个字段,所以后面全是0,而且7个字段不够显示,就自动扩充为了8个

用%g格式符就可以了

 printf("The bigger number would be %-7g\n", max); //这个数字为9.2,应该小于宽度7
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进