次のような時間文字列を記述できるようにしたいと思います:1:04:02.1 hours
printfを使用します。
次のようなものを記述しようとすると:
printf("%d:%02d:%02.1f hours\n", 1, 4, 2.123456);
私は得る:
1:04:2.1 hours
浮動小数点形式に先行ゼロを追加することは可能ですか?
とともに %f
フォーマット指定子、 "2"は、小数点の前の桁数ではなく、最小文字数として扱われます。したがって、2つの先行数字+小数点+ 1つの小数点を取得するには、4に置き換える必要があります。
printf("%d:%02d:%04.1f hours\n", 1, 4, 2.123456);
%04.1f
の代わりに %02.1f
。ここでの「4」は少なくとも4文字が印刷されることを意味し、「2.1」は3(> 2)文字であるため、4が必要なパディングゼロを有効にします。