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

관련 정보