Bashで除算するときに小数点出力を取得できますか? [コピー]

Bashで除算するときに小数点出力を取得できますか? [コピー]

基本的に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

関連情報