我做了一个简单的函数,结果是例如64.998472747。有没有办法将其四舍五入到 60?如果是 65.998472747 则四舍五入为 70?这在 Bash 中可能吗?
light=62.998472747
printf "$.0f" "$light"
所以我的函数只四舍五入到一个整数。在这种情况下,它将四舍五入到 63。
谢谢!
最佳答案
您可以像这样使用 awk:
awk -v n='64.998472747' 'BEGIN{print int((n+5)/10) * 10}'
60
awk -v n='67.998472747' 'BEGIN{print int((n+5)/10) * 10}'
70
awk -v n='95.0' 'BEGIN{print int((n+5)/10) * 10}'
100
awk -v n='94.99' 'BEGIN{ print int((n+5)/10) * 10}'
90
为了使其通用,您可以将除数作为参数传递并创建一个实用程序函数:
round() { awk -v n=$1 -v d=$2 'BEGIN{print int((n+d/2)/d) * d}'; }
然后将其称为:
round 95.0000000001 10
100
round 94.9999 10
90
round 94.9999 1
95
round 95.5000000001 1
96
关于bash - 在 Bash 中将数字四舍五入到 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45240943/