dev/python
[python] 파이썬 반올림 (round)
최연탄
2023. 6. 13. 18:51
728x90
반응형
참고: https://www.programiz.com/python-programming/methods/built-in/round
이 포스트에서는 파이썬의 round() 함수를 예제와 함께 알아보겠습니다. round() 함수는 지정된 소수점 자릿수에서 반올림한 값을 리턴합니다.
number = 13.46
rounded_number = round(number)
print(rounded_number)
round() 문법
round() 함수의 문법은 다음과 같습니다:
round(number, ndigits)
round() 매개변수
round() 함수는 두 개의 매개변수를 받습니다:
number - 반올림 할 숫자
ndigits (optional) - 소수점 몇 째 자리에서 반올림 할지 지정, 기본 값: 0
round() 함수 리턴 값
round() 함수는 다음을 리턴합니다:
- ndigits를 입력 안한 경우 주어진 숫자에 가장 가까운 정수
- ndisits가 있는 경우 ndigits 자리에서 반올림한 숫자
예제 1: 파이썬 round() 사용 방법
print(round(10))
print(round(10.7))
print(round(5.5))
예제 2: 소수점 자릿수에서 반올림
print(round(2.665, 2))
print(round(2.675, 2))
float에 대한 round() 함수의 동작은 이상해 보일 수 있습니다. round(2.675, 2)는 우리가 예상한 값 2.68 대신 2.67을 리턴했습니다. 하지만 이는 버그가 아닙니다. 이는 소수점 값이 정확하게 실수로 표현될 수 없어서 발생한 결과입니다.
반올림 동작을 하기 위해 10진수 2.675를 이진수 부동 소수점으로 변환하면 이진수 근사 값으로 변환되며 이 값에 해당하는 정확한 10진수 값은 다음과 같습니다.
2.67499999999999982236431605997495353221893310546875
이러한 동작으로 인해 2.67로 반올림 되었습니다.
이러한 상황에서 정밀도가 필요한 경우라면 부동 소수점 산술용으로 설계된 10진수 모듈을 사용해야 합니다.
from decimal import Decimal
num = 2.675
print(round(num, 2))
num = Decimal('2.675')
print(round(num, 2))
// 2.67
// 2.68
관련 글
반응형