C语言中printf输出浮点数按"%m.nf"格式输出,为什么有的会四舍五入,而有的没有


#include <stdio.h>

int main()
{

printf("%.2f\n", 9.985);
printf("%7.2f\n", 9.985);
printf("%.2f\n", 100.555);//输出100.56,为什么四射五入了
printf("new line\n");
printf("%.2f\n", 119.985);//输出19.98,为什么没有四舍五入
printf("%.2f\n", 100.555);//输出100.56

printf("%6.2f\n", 19.985);//输出19.98
printf("%6.2f\n", 119.986);//输出19.99
printf("%6.2f\n", 100.555);//输出100.56


}

输出结果为:

img

m是宽域限制,不够补空格,并不会四舍五入。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^