基本的にBashで私が望むのは、ユーザーから秒を入力して時間を見つけることです。したがって、デフォルトでは、ユーザーが35を入力した場合、出力は0.00972222でなければなりません。
しかし、bashは私に0を与えます。
これは私のコマンドです:
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