%g
でフォーマット指定子として使用している間printf()
、小数点以下2桁まで、場合によっては3桁まで、場合によっては4桁まで切り上げます...どうすればよいですか?
実際、浮動小数点数%g
の代わりに、%f
または%e
浮動小数点数に使用する必要がある場所はどこですか?
%g
でフォーマット指定子として使用している間printf()
、小数点以下2桁まで、場合によっては3桁まで、場合によっては4桁まで切り上げます...どうすればよいですか?
実際、浮動小数点数%g
の代わりに、%f
または%e
浮動小数点数に使用する必要がある場所はどこですか?
%g
ハンドヘルド電卓と同じように、可能な限り多くの情報を表示するために、値の使用%e
と値に応じて自動的に「反転」します。%f
また、%g
末尾のゼロと小数点は含まれていません。
フォーマット指定子は、%g
同じように丸め%f
を行いますが、%f
結果が4.234000
。に%g
なる場合は、末尾のゼロを省略して、を出力します4.234
。
%g
12345.6
一部の数値が。として出力され、わずかに大きい数値が。として出力されることが出力形式で最も理にかなっている場合に使用する必要があります1.235e04
。
%f
変換の場合、「精度」は小数点以下の桁数であり%g
、有効桁数です。
どちらの場合も、デフォルトの精度は6です。
printfマニュアルから:
"double引数はスタイルfまたはe(またはG変換の場合はFまたはE)に変換されます。精度は有効桁数を指定します。精度が欠落している場合は6桁が指定され、精度がゼロの場合は処理されます。変換からの指数が-4未満、または精度以上の場合、スタイルeが使用されます。結果の小数部から末尾のゼロが削除されます。小数点の後にはatが続く場合にのみ小数点が表示されます。少なくとも1桁。」
「RTFM」という意味ではありませんが、精度と長さの制御に関するマニュアルのセクションで、探しているものが見つかる可能性があります。