永发信息网

C语言问题,这种输出是为什么

答案:3  悬赏:50  手机版
解决时间 2021-07-25 19:46
  • 提问者网友:棒棒糖
  • 2021-07-25 14:11
main() { float f = 123.456; printf ( ”%f,%10f,%10.2f,%.2f,%-10.2f\n”,f,f,f,f,f); } 123.455994,123.455994,□□□□123.46, 123.46,123.46□□□□ 第一个为什么是十位
最佳答案
  • 五星知识达人网友:话散在刀尖上
  • 2021-07-25 14:21
默认输出到小数点后第6位
加上小数点和123,就是10位了
%10f这个10指的是不足10位时自动填充空格,这个10包含了整个输出(整数部分+小数部分+小数点)的累积长度,而%10.2f,这个.2才是小数部分的精度

比如对于123.456有7个字符
%1f~%7f都会原封不动地输出,只有超过了7,才会自动进行填充空格(%nf)或0(%0nf)
全部回答
  • 1楼网友:神的生死簿
  • 2021-07-25 16:01
第一个输是10位是偶然情况,你要是将f的值改一下,整数部分不是3weight的话他就不是10位了。浮点数输出只是小数点后默认6位
  • 2楼网友:长青诗
  • 2021-07-25 15:07

因为%f默认保留6位小数。。。。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯