![Bash에서 나누기를 할 때 소수점 출력을 얻을 수 있습니까? [복사]](https://linux55.com/image/83887/Bash%EC%97%90%EC%84%9C%20%EB%82%98%EB%88%84%EA%B8%B0%EB%A5%BC%20%ED%95%A0%20%EB%95%8C%20%EC%86%8C%EC%88%98%EC%A0%90%20%EC%B6%9C%EB%A0%A5%EC%9D%84%20%EC%96%BB%EC%9D%84%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
기본적으로 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