四舍五入到两位小数 sh

round to 2 decimals sh

我想在这个表达式中的点后得到两位小数:7/2

#temperature equal 7
tempeture= `cat temperature`  
rate= expr $temperature/2  
echo "$rate"

我要 3,我想要 3.50。谢谢

这个问题已经有人提出并回答了。
参见:https://askubuntu.com/questions/179898/how-to-round-decimals-using-bc-in-bash

一个bash轮函数:

round()
{
echo $(printf %.f $(echo "scale=;(((10^)*)+0.5)/(10^)" | bc))
};

您还可以使用 printf 的类型说明符:

$ temperature=7
$ echo "$temperature/2" | bc -l
3.50000000000000000000
$ printf "%.2f\n" $(echo "$temperature/2" | bc -l)
3.50

舍入为两位小数的一种方法是使用 bc 命令并将 scale 变量设置为 2:

echo "scale=2; ($temperature/2)" | bc

您也可以这样使用 printf

printf "%.2f" $(($temperature/2))