シェルスクリプトで小数点以下を四捨五入する方法

2020-09-08

シェルスクリプトで小数点以下を四捨五入する方法ですが、awk コマンドを利用すればできます。

awkコマンドでは、「printf(“%d\n",x)」とすれば整数として出力できるので、小数点以下を切り捨てられ整数分のみ表示されます

$ echo 0.22 | awk '{printf("%d\n",$1)}'
0
$ echo 1.22 | awk '{printf("%d\n",$1)}'
1
$ echo 32.22 | awk '{printf("%d\n",$1)}'
32

小数点以下を四捨五入するには、awk '{printf(“%d\n",$1 + .0.5)}’ のようにすれば、四捨五入したい値に「0.5」を足して整数部分のみ出力すれば四捨五入した値になります。

># 0.42 + 0.5 = 0.92 整数部分は、0
$ echo 0.42 | awk '{printf("%d\n",$1 + .0.5)}'
0

# 0.63 + 0.5 = 1.13 整数部分は、1
$ echo 0.63 | awk '{printf("%d\n",$1 + .0.5)}'
1

# 11.52 + 0.5 = 12.02 整数部分は、12
$ echo 11.52 | awk '{printf("%d\n",$1 + .0.5)}'
2