私はprintfを使用してフロートを小数点以下の桁数に丸める問題があります。私は以下のように矛盾した結果を得ています。awkとprintfを使用して正しく丸めない
echo 104.45 | awk '{printf "%.1f\n",$1}'
104.5 <-- seem to be correct behaviour
echo 104.445 | awk '{printf "%.2f\n",$1}'
104.44 (should be 104.45) <-- seems to be INCORRECT behaviour
echo 104.4445 | awk '{printf "%.3f\n",$1}'
104.445 <-- seems to be correct behaviour
浮動小数点数の計算では問題が発生する可能性がありますが、書式設定ではこれを想定していない例があります。
あなたは 'GNU'バージョンのawkを使用していますか? – sjsam
さらに詳しい質問は、[Python float round error 117.285 to 117.28 not 117.29](http://stackoverflow.com/questions/9301690/python-float-round-error-117-285-round-to-117)を参照してください。 -28-not-117-29)。 –
おかしい、私が間違っていると思う正しいと思うもの、またはその逆。書式設定のコンテキストでは、文字列の短縮やパディングだけで何の表現も問題にならないと思います。 2番目のケースだけが私にとって期待される動作をしています。 – bli