Округлить до 2 десятичных знаков ш

Я хотел бы получить два знака после запятой в этом выражении: 7/2

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

Я получаю 3, и я хочу 3,50. Thks

3 ответа

Решение

Один из способов округлить до двух децималов - использовать 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 "%.2f\n" $(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))
};
Другие вопросы по тегам