Можно ли получить десятичный вывод при делении в Bash?

Можно ли получить десятичный вывод при делении в Bash?

По сути, в Bash я пытаюсь взять ввод секунд от пользователя и найти часы. Так что, по сути, если пользователь вводит 35, вывод должен быть 0,00972222.

Но bash выдает мне ноль.

Вот команда, которая у меня есть:

echo "Enter the seconds you wish to convert to hours: " && read sec && echo " $((sec/3600)) is the amount of hours "

Можно ли сделать так, чтобы при вводе 35 выводилось 0,00972222?

Спасибо!

решение1

Вот попробуй это

echo $(echo "35/3600" | bc -l )

так что ваша команда будет выглядеть так

echo "Enter the seconds you wish to convert to hours: " && read sec && echo " $(echo "$sec/3600" | bc -l ) is the amount of hours "

Для управления количеством печатаемых значащих цифр используйте scale=N. Например:

$ echo "scale=3; 35/3600" | bc -l 
.009

Если вы также хотите, чтобы интерлиньяж был 0напечатан (что, как ни странно,bcне будет легко сделать), вы можете ввести число в printf(который также может округлить его в большую/меньшую сторону):

$ printf '%.3f\n' $(echo "35/3600" | bc -l)
0.010
$ printf '%.4f\n' $(echo "35/3600" | bc -l)
0.0097

Связанный контент