숫자 반올림하기

Bash:
숫자 반올림하기

방법:

Bash에서 반올림하는 방법에 대해 알아보겠습니다:

# 'floor'를 사용하여 내림하기
echo "scale=0; 3.49/1" | bc

# 'ceiling'을 사용하여 올림하기
echo "scale=0; 3.01/1" | bc -l

# printf를 사용하여 가장 가까운 정수로 반올림하기
printf "%.0f\n" 3.49

# bc를 사용하여 가장 가까운 정수로 반올림하는 요령
echo "(3.49+0.5)/1" | bc

터미널 입에서 나온 샘플 출력들:

3  # 내림됨 (floor)
4  # 올림됨 (ceiling)
3  # 가장 가까운 값으로 반올림됨 (printf 사용)
3  # 가장 가까운 값으로 반올림됨 (bc 사용)

심층 탐구

예전에는 Bash 스크립트에서 수학 마법을 부릴 수 있는 bcprintf가 없었습니다. 올드스쿨러들은 외부 도구에 의지하거나 교묘한 해결책을 찾아야 했습니다. 이제 bc를 사용하면 정밀 수학을 할 수 있습니다. 기억하세요, bc는 기본적으로 반올림하지 않습니다—내림합니다. 스케일 부분은 소수점 행동을 설정합니다.

대안이 있다면? bc로 전환하지 않고 반올림을 하기 위해 awk을 사용할 수 있거나 더 많은 수학적 필요에 대해 perl로 씨름할 수 있습니다. 자학적인 경우에는, 예를 들어 순수 Bash로 반복적인 문자열 조작을 할 수 있지만, 왜 그럴까요?

세부 사항에 대해서는, bc는 단순히 반올림만 하는 것이 아니라 많은 수학적 작업을 할 수 있습니다—스케일링, 사인, 루트 계산 등등을 할 수 있습니다. printf는 텍스트 포매팅에 더 관련이 있지만, 반올림도 할 수 있으니 불만이 없습니다.

또한 보기

더 많은 정보를 원하는 이들을 위해: