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)
加上小数点和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位小数。。。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯