在 awk 中执行计算时舍入小数点后第二位

在 awk 中执行计算时舍入小数点后第二位

这是一个简单的例子:

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 结合起来执行四舍五入到小数点后第二位的计算。

答案1

您可以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)

相关内容