Ksh

在 awk 中執行計算時舍入第二位小數

  • November 12, 2019

這是一個簡單的例子:

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 結合起來執行計算以四捨五入到小數點後第二位。

您可以printf直接使用而不是printin awk(至少是 GNU awk):

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)

引用自:https://unix.stackexchange.com/questions/551712