printfを使用して49.765を49.77に丸めますか?

printfを使用して49.765を49.77に丸めますか?

49.765は一連のコマンドの出力です。 print fを使って小数点以下の2桁から49.77に丸めたいと思います。

コードは何ですか?

ベストアンサー1

$ x=49.765
$ printf "%.2f" $(echo "$x + 0.005" | bc)

printf(1)には丸め機能が組み込まれておらず、POSIXシェルには浮動小数点演算が組み込まれていないため、外部コマンドを使用する必要があります。

最も近い小数点以下の桁数に丸めるには、0.5 を加算して切り捨てます。最寄りの10分の1桁に丸めるには、Nudge Factorを10で割ります。

組み込みの機能が不足しているため、人々がシェルの代わりにPerlのようなものを使用することがよくあります。

$ perl -e 'printf "%.2f", 49.765 + 0.005'

同じですが、すべて1つのプロセスとして扱われます。

おすすめ記事