BASH舍入浮动到最接近的十分之一

时间:2012-11-26 20:10:57

标签: bash decimal rounding

如何使用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

感谢任何帮助。

2 个答案:

答案 0 :(得分:8)

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

printf "%.1f" "$loadMin"

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

printf -v variable "%.1f" "$loadMin"

答案 1 :(得分:1)

您可以使用awk

一次性完成此操作
loadMin=$(uptime | awk '{printf "%0.1f", $14}')

<强>解释

  • 而不是使用cut,而是使用awk来简化这些
  • 默认情况下,
  • awk分隔空格和制表符,并将每一行分隔为字段。
  • '{printf "%0.1f", $14}':将第14个字段打印为浮点数,四舍五入到最接近的1位小数。