awkで計算を実行すると、小数点以下の2桁目に丸められます。

awkで計算を実行すると、小数点以下の2桁目に丸められます。

簡単な例は次のとおりです。

echo "36974820" | awk '{print "("$1 " KB)" " (" $1/1024 " MB)" " (" $1/1024/1024 " GB)\n"}'

出力:

(36974820 KB) (36108.2 MB) (35.2619 GB)

私が望むものは次のとおりです。

(36974820 KB) (36108.2 MB) (35.26 GB)

以下は単独で使用できることを知っています。

echo "5.5434" | awk '{printf "%.2f\n", $1}'

出力は次のとおりです

5.54

上記の内容をawkと組み合わせて小数点以下の2桁目に丸める計算を行いたいと思います。

答え1

(少なくともGNU awk)のprintf代わりに直接使用できますprintawk

user@host $ echo "36974820" | awk '{printf("(%d kB)  (%.2f MB)  (%.2f GB)\n", $1, $1/1024, $1/1024/1024)}'
(36974820 kB)  (36108.22 MB)  (35.26 GB)

関連情報