bash script2023. 7. 4. 10:12

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/575868

 

bc를 이용해서 자연수 나눗셈을 할 때, 결과값은 나눈 몫의 자연수 부분이 되고 소수점 부분은 버려지게 된다. (bc를 이용한 산수 계산에 대한 좀 더 자세한 내용은 이전 게시물을 참고하자. 여기로)

 

echo "10/3" | bc
3

만약 소수점 부분에 대해 올림이나 반올림을 적용하고 싶다면 아래과 같이 변형시켜서 계산하면 되겠다.

먼저 올림부터 보자. 변수 a와 b에 자연수가 할당되어 잇고 a/b를 계산하고자 한다면 a 대신에 (a+b-1)을 사용해서 계산하면 된다. 아래의 예시를 보자.

# 올림
a=10
b=3
echo "($a+$b-1)/$b" | bc
4

이번엔 반올림(소수점 부분이 0.5 이상이면 올림, 0.5 미만이면 버림)이다. a/b를 계산할 때 반올림을 적용하고 싶다면 a 대신에 (a+b/2)를 사용해서 계산한다.

# 반올림
a=10
b=3
echo "($a+$b/2)/$b" | bc
3

 

 

728x90
Posted by 반달가면