我想打印双打,以便小数排成一行。例如:
1.2345
12.3456
应该导致
1.2345
12.3456
我到处寻找,最重要的建议是使用以下方法(5s可以是任何东西):
printf(%5.5f\n");
我用以下(非常)简单的程序试过这个:
#include <stdio.h>
int main() {
printf("%10.10f\n", 0.523431);
printf("%10.10f\n", 10.43454);
return 0;
}
我的输出是:
0.5234310000
10.4345400000
为什么这不起作用?
答案 0 :(得分:3)
.
之前的数字是最小字符总计,而不是在小数点之前。
printf("%21.10f\n", 0.523431);
答案 1 :(得分:2)
当你使用"%10.10f"
时,你告诉printf()
“使用10个字符位置来打印数字(可选减号,整数部分,小数点和小数部分)。从这10个位置,保留10对于小数部分。如果不可能,忽略第一个数字并使用打印数字所需的任何位置,以便保持小数位数“
这就是printf()
正在做的事情。
所以你需要指出你要使用多少个位置,例如15,以及这些位置中的多少个位数......例如,9。这将留下5个位置减号和整数部分以及小数点的一个位置。
也就是说,在printf的
中试试"%15.9f"