您可以在打印浮點數和雙精度時指定小數點後的精度。這是通過一個格式說明符來完成的,例如:%.Nf,其中N是一個正整數。所以,如果你使用:
printf("%.3f\n", vals[i]);
你的輸出是:
0.000
1.000
0.025
但你不能得到它的打印正是你聲明的方式。您將不得不在循環的不同階段更改精度(前兩次迭代爲%.1f,最後一次迭代爲%.3f)。 有很多對printf的,包括前導空格選項,以及:
http://pubs.opengroup.org/onlinepubs/009695399/functions/printf.html
編輯:
所以,如果你想有一個最低的印刷1位小數如您在您的評論解釋你可以添加一個明確的檢查對於一個案例:
#include <math.h>
#include <stdio.h>
int
main(int argc, char *argv[]) {
float vals[3] = { 0.0f, 1.0f, 0.025f };
for(int i=0; i < 3; i++) {
if(fmod(vals[i],1) == 0) printf("%.1f\n", vals[i]);
else printf("%f\n", vals[i]);
}
return 1;
}
輸出:
0.0
1.0
0.025000
嘗試'setprecision'。它在''中,它有更多的C++格式輸出格式。 –
chris