파이썬의 math 모듈에는 소수점이 있는 숫자에서 가장 가까운 정수 값을 구할 때 유용하게 사용되는 두 가지 함수가 있습니다. 바로 floor()와 ceil()입니다. 이 두 함수는 내림과 올림 처리를 간단하게 해결해 주기 때문에 데이터 계산, 반올림 로직, 페이지네이션 등 다양한 상황에서 자주 활용됩니다.
floor() 함수란?
floor() 함수는 소수가 포함된 숫자를 매개변수로 받아, 그 숫자보다 작거나 같은 가장 가까운 정수를 반환합니다. 쉽게 말해 '내림'을 수행하는 함수입니다.
문법
math.floor(x) # x는 숫자 값(정수 또는 실수)
floor() 예제
아래 예제에서는 정수, 양의 소수, 음의 소수 등 다양한 유형의 숫자 값에 floor 함수를 적용해 보겠습니다. 입력된 값보다 작거나 같은 가장 가까운 정수가 결과로 출력됩니다.
import math
x, y, z = 21, -23.6, 14.2
print("The value of ", x, "on applying floor() function is:", math.floor(x))
print("The value of ", y, "on applying floor() function is:", math.floor(y))
print("The value of ", z, "on applying floor() function is:", math.floor(z))실행 결과
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
The value of 21 on applying floor() function is: 21 The value of -23.6 on applying floor() function is: -24 The value of 14.2 on applying floor() function is: 14
주목할 점은 -23.6의 경우 -24가 반환된다는 것입니다. floor()는 단순히 소수점을 버리는 것이 아니라, 항상 더 작은 방향의 정수로 내리기 때문입니다.
ceil() 함수란?
ceil() 함수는 소수가 포함된 숫자를 매개변수로 받아, 그 숫자보다 크거나 같은 가장 가까운 정수를 반환합니다. 즉, '올림'을 수행하는 함수로 floor()와 정반대의 동작을 합니다.
문법
math.ceil(x) # x는 숫자 값(정수 또는 실수)
ceil() 예제
마찬가지로 정수, 양의 소수, 음의 소수 등 여러 유형의 숫자 값에 ceil 함수를 적용해 보겠습니다. 입력된 값보다 크거나 같은 가장 가까운 정수가 결과로 반환됩니다.
import math
x, y, z = 21, -23.6, 14.2
print("The value of ", x, "on applying ceil() function is:", math.ceil(x))
print("The value of ", y, "on applying ceil() function is:", math.ceil(y))
print("The value of ", z, "on applying ceil() function is:", math.ceil(z))실행 결과
위 코드를 실행하면 다음과 같은 결과를 확인할 수 있습니다.
The value of 21 on applying ceil() function is: 21 The value of -23.6 on applying ceil() function is: -23 The value of 14.2 on applying ceil() function is: 15
음수인 -23.6은 -23으로 올려짐을 알 수 있습니다. ceil() 역시 항상 더 큰 방향의 정수로 올리기 때문입니다.
floor()와 ceil() 비교 정리
| 구분 | floor() | ceil() |
|---|---|---|
| 동작 | 내림 (작거나 같은 정수) | 올림 (크거나 같은 정수) |
| 21 적용 시 | 21 | 21 |
| -23.6 적용 시 | -24 | -23 |
| 14.2 적용 시 | 14 | 15 |
마무리
math.floor()와 math.ceil()은 파이썬에서 숫자를 내림하거나 올림할 때 가장 기본적이면서도 강력한 도구입니다. 두 함수 모두 math 모듈을 import한 후 사용할 수 있으며, 정수를 입력하면 그대로 정수가 반환됩니다. 실수 연산 결과를 정수로 변환해야 하는 다양한 프로그래밍 상황에서 이 두 함수를 적절히 활용해 보시기 바랍니다.