본문 바로가기
개발/python

python 올림 내림 반올림 함수, ceil(), floor(), round() 정리

by 왼하루 2022. 4. 23.
반응형

파이썬에서 실수를 처리 할 때 반올림은 round() 함수, 올림은 ceil() 함수, 내림은 floor() 함수를 사용할 수 있습니다. 그 중 반올림 함수 round()는 사사오입 원칙으로 원하는 값과 다른 결과 값을 보일 수 있습니다.

 

 

파이썬 반올림 올림 내림 함수, round(), ceil(), floor()

간략하게 3가지 함수에 대해 알아보겠습니다.

 

  • 올림 함수 ceil()
  • 내림 함수 floor()
  • 반올림 함수 round(), 사용시 주의 할 점 및 이를 대처할 방법

 

 

올림 함수 ceil()

파이썬 표준 모듈 중 math 를 import 하여, math 모듈의 함수인 ceil() 을 사용합니다.

 

# math 모듈 import
import math

# math 모듈의 ceil 함수 사용
print(math.ceil(1.1))
print(math.ceil(1.3))
print(math.ceil(1.5))
print(math.ceil(1.7))
print(math.ceil(1.9))

 

예시로 쓰여진 실수의 올림 값은 모두 2 입니다. math.ceil() 함수는 올림한 값을 리턴해줍니다.

 

결과

 

 

내림 함수 floor()

내림 또한 math 모듈에 내장된 floor 함수를 사용합니다.

 

# math 모듈 import
import math

# math 모듈의 floor 함수 사용
print(math.floor(1.1))
print(math.floor(1.3))
print(math.floor(1.5))
print(math.floor(1.7))
print(math.floor(1.9))

 

예시로 쓰여진 실수의 내림 값은 모두 1 입니다. math.floor() 함수는 내림한 값을 리턴해줍니다.

 

결과

 

 

반올림 함수 round(), 사용시 주의 할 점 및 이를 대처할 방법

파이썬에서 실수를 반올림하고 싶을 때, round() 내장 함수를 사용할 수 있습니다. 내장 함수이기 때문에 별도로 import 할 것은 없습니다.

 

# round 함수 
print(round(1.5))
print(round(2.5))
print(round(3.5))
print(round(4.5))
print(round(5.5))

 

위 코드에서 각각의 실수를 반올림하면 2, 3, 4, 5, 6 로 결과값이 예상되지만 실제로 실행한 결과는 아래와 같습니다.

 

이상한 결과

 

이러한 결과가 나온 이유는 사사오입 원칙 때문입니다. 파이썬에서 round() 함수는 정수 부분이 홀수일 경우 올림, 짝수일 경우 내림하여 계산됩니다. 따라서 round() 함수를 사용하기 위해서는 해당 사항을 숙지하고 있어야 합니다. 

 

이는 간단하게 0.5를 더한 후, 내림 함수(floor)를 사용하면 해결할 수 있습니다.

 

# math 모듈 import
import math

ex_1 = 1.5
ex_2 = 2.5
ex_3 = 4.5

# 실수에 0.5 를 더하여 내림 (floor) 함수 사용 
print(math.floor(ex_1 + 0.5))
print(math.floor(ex_2 + 0.5))
print(math.floor(ex_3 + 0.5))

 

이제 원하는 결과 값을 확인할 수 있습니다.

 

결과

 

 

마무리

파이썬으로 코딩하다 수식이 복잡해질 경우 잘못된 사용으로 잘못된 결과값을 보일 수 있습니다. 간단히 round() 함수를 사용하여 반올림하고 싶지만 사사오입 원칙으로 원하지 않는 결과를 보일 수 있으니 주의가 필요할 것 같습니다.

 

오늘도 행복한 코딩생활 되시기 바라겠습니다. 감사합니다.

 

 

댓글