본문 바로가기

BLOG/파이썬 기초

[파이썬] 반올림 / 올림 / 버림 자릿수 지정 - round, ceil, trunc

 

이전 포스팅에서는 반올림 / 올림 / 버림 함수인 round / ceil / trunc 함수에 대해 알아봤었는데요,

이 함수들의 일의 자리까지 반올림/올림/버림을 하는 것으로 기본이 설정되어 있습니다.

 

하지만 소수점 첫째 자리까지, 또는 소수점 셋째 자리까지 반올림/올림/버림을 해야 하는 경우가 있을 수 있는데요, 이러한 경우엔 각 함수안에 자릿수 지정값을 넣어주면 된답니다.

아래의 코드를 보면서 설명드리도록 하겠습니다.

 

 

1. round() : 자릿수 지정 반올림

 

num = 5.678
num2 = round(num)
print(num2)

 

6

 

위 코드를 실행하면 자동으로 소수점 첫째 자리에서 반올림이 되어 '6'이라는 결괏값이 출력되는데요,

만약 소수점 셋째자리에서 반올림을 해서 소수점 둘째 자리까지 나타내고 싶다면 아래와 같이 코드를 입력하면 됩니다.

 

num = 5.678
num2 = round(num,2)  #자릿수 정수값으로 입력
print(num2)

 

5.68

 

위 결과처럼 소수점 둘째자리까지 반올림이 된 것을 확인할 수 있습니다.

 

 

2. ceil(), trunc() : 올림 / 버림

한편, math 라이브러리를 이용하는 ceil 함수와 trunc 함수도 자릿수를 지정하기 위해 앞에 round()처럼 동일하게 코드를 작성해보았습니다.

 

import math
num = 5.678
num2 = math.ceil(num,2)
print(num2)

 

TypeError: ceil() takes exactly one argument (2 given)

 

똑같이 코드를 입력한 결과, 에러가 난 것을 확인할 수 있는데, 에러 내용을 보면 ceil() 함수는 round() 와 같이 자릿수를 지정해주는 기능이 없습니다. 이는 버림함수 trunc() 도 마찬가지입니다.

 

 

3. ceil(), trunc() : 자릿수 지정 올림 / 버림

따라서 다른 방법을 사용해야 하는데요, numpy 라이브러리를 이용하여 자릿수를 지정해서 올림/버림을 할 수 있습니다.

예를 들어, 소수점 아래 셋째 자리에서 반올림해 소수점 아래 둘째 자리까지 나타내고 싶다면 다음과 같이 코드를 작성하면 됩니다.

 

import math
import numpy as np

num = 1.234
print(np.ceil(num*100)/100)

 

1.24

 

np.ceil(num*100)/100 이 부분이 핵심인데요, 자세히 살펴보면

>> np.ceil(1.234*100)/100

>> np.ceil(123.4)/100

>> 124.0/100

>> 1.24

가 되어 소수점 아래 둘째자리까지 올림을 할 수 있습니다.

 

따라서 만약 이번엔 소수점 아래 한자리까지 올림을 하고 싶다면 np.ceil(num*10)/10 이라고 입력하면 됩니다.

이와 마찬가지로 trunc() 함수도 동일하게 사용하여 특정 자릿수까지 버림할 수 있답니다.