|
>sprintfで"%f"では前ゼロは出来ないのでしょうか?
>以下のような構文だとうまくいかないのですがなぜでしょう?
>sprintf( &chrBuf[lp_cnt][len], "%03.1f", set_dbl );
「うまくいかない」をちゃんと説明して下さい。つまり,
・set_dblの値 (入力)
・期待された出力
・実際の出力
を提示して下さい。
ちなみに,
・printf("%03.1f", f);
・printf("%3.1f", f);
・printf("%0.1f", f);
・printf("%.1f", f);
は同じ結果になります。
#fはdouble型の変数またはdouble型に展開されるオブジェクト形式マクロ。
%03.1fは,
[flags] 0 : 0で最低フィールド幅に満たない分を埋める
[minimum field width] 3 : 最低フィールド幅は3文字
[precision] .1 : 小数点以降に1文字表示
[length modifier] : なし
[conversion specifier] f : double型を[-]d.dという形式で表示
という意味になります。
小数点より前に最低1文字,小数点文字,小数点より後ろに1文字表示しますから,
最低でも3文字表示することになります。
つまり,今回はflagsとminimum field widthは実質的に意味を為しません。
|