
기본적으로 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