4

如何使用 bc 将浮点数舍入到最接近的十分之一。我有一个名为 loadMin 的变量

loadMin=$(uptime | cut -d" " -f14 | cut -c 1-4) 

它返回每分钟的负载平均值,小数点后两位。即 0.01 0.02 0.09。我需要将数字四舍五入到最接近的十分之一。例如 0.01 四舍五入为 0.0 或 1.09 四舍五入为 1.1

任何帮助表示赞赏。

4

2 回答 2

8

为什么使用bcprintf很乐意这样做:

printf "%.1f" "$loadMin"

如果您需要将结果放入变量中:

printf -v variable "%.1f" "$loadMin"
于 2012-11-26T20:15:57.330 回答
1

您可以一次性完成awk

loadMin=$(uptime | awk '{printf "%0.1f", $14}')

解释:

  • 代替使用cut,使用awk代替使这些更容易
  • awk默认情况下分隔空格和制表符,并将每行分隔为字段。
  • '{printf "%0.1f", $14}':将第 14 个字段打印为浮点数,四舍五入到最接近的小数点后 1 位。
于 2012-11-26T20:15:48.017 回答