올림, 내림, 반올림 등은 파이썬의 math모듈을 호출하여 사용가능하다.
웹개발자를 기준으로는 페이징 처리를 할때 많이 사용된다.
1. 올림(ceil)
올림 함수는 주어진 숫자보다 크거나 같은 가장 작은 정수를 반환한다. 소수점자리가 얼마이든 상관하지 않고 바로 올려버리는 함수이다.
import math
number = 3.7
result = math.ceil(number)
print(result) # 출력: 4
2. 내림(floor)
내림 함수는 주어진 숫자보다 작거나 같은 가장 큰 정수를 반환한다.
import math
number = 3.7
result = math.floor(number)
print(result) # 출력: 3
3-1. 반올림(round)
round는 주어진 숫자를 가장 가까운 정수로 반올림한다. 2번째 예시처럼, round의 두번째 매개인자에 반올림하고자 하는 소수점 자릿수를 지정할 수 있다.
number = 3.7
result = round(number)
print(result) # 출력: 4
number = 3.14159
result = round(number, 2)
print(result) # 출력: 3.14
3-2. 사사오입
파이썬의 round는 약간 특이한 점이 있는데 예제로 살펴보자
print(round(1.5)) # 출력: 2
print(round(2.5)) # 출력: 2
print(round(3.5)) # 출력: 4
print(round(4.5)) # 출력: 4
python 에서 round() 를 사용한 반올림은 사사오입 원칙을 따른다. 여기서 사사오입 원칙이란 반올림 대상의 값이 5일때 앞자리 숫자가 홀수면 올림, 짝수면 내리는 것을 말한다. 따라서, 파이썬에서 제공하는 Decimal 라이브러리를 사용해도 되고, 아래처럼 직접 커스텀해서 사용해도 된다. (아래는 단순한 예시이다)
def custom_round(number):
if number - int(number) >= 0.5:
return int(number) + 1
else:
return int(number)
# 테스트 케이스
test_numbers = [1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5]
for number in test_numbers:
print(custom_round(number))
'Python' 카테고리의 다른 글
[Python] 파이썬 - 09. 문자열(String)활용 (0) | 2023.05.20 |
---|---|
[Python] 파이썬 - 08. *args, **kwargs (0) | 2023.05.07 |
[Python] 파이썬 - 06. 대입연산, 얕은 복사, 깊은 복사 (0) | 2023.03.11 |
[Python] 파이썬 - 05. 여러가지 포맷팅 방법 (%, {}, f-string) (0) | 2023.03.02 |
[Python] 파이썬 - 04. __str__ (0) | 2023.02.25 |