浮動小数点数と倍精度浮動小数点数の小数点以下の精度を印刷時に指定できます。これは、%.Nf のようなフォーマット指定子で行われます。ここで、N は正の整数です。したがって、使用した場合:
printf("%.3f\n", vals[i]);
あなたの出力は次のとおりです。
0.000
1.000
0.025
ただし、宣言したとおりに印刷することはできません。ループのさまざまな段階で精度を変更する必要があります (最初の 2 回の反復では %.1f、最後の反復では %.3f)。printf には、先頭のスペースも含めて多くのオプションがあります。
http://pubs.opengroup.org/onlinepubs/009695399/functions/printf.html
編集:
したがって、コメントで説明したように、小数点以下 1 桁以上を出力したい場合は、その 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