4917.24
のような浮動小数点数があります .常に小数点の前に 5 文字、先頭に 0 を付け、次に小数点以下 3 桁になるように印刷したいと思います。
printf("%05.3f", n)
を試してみました 私が使用している組み込みシステムでは、 *****
を出力します .フォーマット指定子は正しいですか?
答え:
フォーマット指定子が正しくありません。 printf()
から 私のマシンの man ページ:
あなたの場合、フォーマットは %09.3f
になります :
#include <stdio.h>
int main(int argc, char **argv)
{
printf("%09.3f\n", 4917.24);
return 0;
}
出力:
$ make testapp
cc testapp.c -o testapp
$ ./testapp
04917.240
この回答は、組み込みシステムが printf()
を持っていることを条件としていることに注意してください これらの詳細について標準に準拠した実装 - 多くの組み込み環境は準拠していません