在 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

相关内容