我想在这个表达式中的点后面得到两个小数:7/2
#temperature equal 7
tempeture= `cat temperature`
rate= expr $temperature/2
echo "$rate"
我得了3分,我想要3.50分。thks
四舍五入到两位小数的一种方法是使用bc
命令并将scale
变量设置为2:
echo "scale=2; ($temperature/2)" | bc
你也可以这样使用printf
:
printf "%.2f" $(($temperature/2))
您也可以使用printf
的类型说明符:
$ temperature=7
$ echo "$temperature/2" | bc -l
3.50000000000000000000
$ printf "%.2fn" $(echo "$temperature/2" | bc -l)
3.50
这个问题已经被提出并回答了
请参阅:https://askubuntu.com/questions/179898/how-to-round-decimals-using-bc-in-bash
一个bash-round函数:
round()
{
echo $(printf %.$2f $(echo "scale=$2;(((10^$2)*$1)+0.5)/(10^$2)" | bc))
};