본문 바로가기
프로그래밍/Python

[Python] round 함수 : 반올림 (1) - 사용 방법

by 빛밤하늘 2021. 5. 13.
반응형

백준의 알고리즘 문제를 풀면서 소수 몇 번째 자리에서 반올림을 하여 출력을 하는 문제를 몇 가지 만났습니다.

개념 자체는 쉬운 개념이지만, 한 번씩 해당 함수의 사용법을 까먹곤 해서 사용법을 정리하고자 합니다.

 

밑의 게시물들이 알고리즘 문제를 풀면서 반올림과 부딪혔던 것을 풀었던 게시물입니다.

 

[백준][solved.ac][Bronze 1][Python] 4344번 : 평균은 넘겠지

4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 파이썬 코드와 결과입니다. # 첫째 줄에 테

brightnightsky77.tistory.com

 

[백준][solved.ac][Bronze 2][Python] 3448번 : 문자 인식

밑의 링크는 백준에서의 문제 링크입니다. 3448번: 문자 인식 동혁이는 새로운 이미지 문자 인식 프로그램을 만들었다. 이 프로그램은 종이에 쓰여 있는 글자를 스캔한 뒤, 텍스트 파일로 저장한

brightnightsky77.tistory.com

 

 

 

round 함수 : 반올림

밑의 링크는 파이썬 공식 문서에서의 round 함수 설명입니다.

 

내장 함수 — Python 3.9.5 문서

내장 함수 파이썬 인터프리터에는 항상 사용할 수 있는 많은 함수와 형이 내장되어 있습니다. 여기에서 알파벳 순으로 나열합니다. abs(x) 숫자의 절댓값을 돌려줍니다. 인자는 정수, 실수 또는 __

docs.python.org

 

파이썬에서 반올림을 할 수 있는 함수는 round입니다.

round 함수는 파이썬 내장 함수이므로, 따로 특정 패키지를 import 하지 않더라도 바로 사용할 수 있습니다.

 

정확한 사용법은 매개변수가 1개 혹은 2개가 들어가는 방식으로 사용합니다.

 

  • round('반올림을 할 숫자')
  • round('반올림을 할 숫자', '정밀도')

매개변수가 1개인 경우에는 소수점 첫째 자리에서 반올림을 합니다.

매개변수가 2개인 경우에는 2번째 매개변수에 입력한 정밀도를 통해

반올림을 할 자릿수를 조절해서 표시할 수 있습니다.

 

2번째 매개변수의 예시는 다음과 같습니다.

2번째 매개변수가 1인 경우에는 소수점 첫째 자리까지 표시한다는 것이므로,

소수점 둘째 자리에서 반올림을 한다는 뜻입니다.

 

2번째 매개변수가 0인 경우에는 일의 자리까지 표시한다는 것이므로,

소수점 첫째 자리에서 반올림을 한다는 뜻입니다.

 

2번째 매개변수가 1인 경우에는 십의 자리까지 표시한다는 것이므로,

일의 자리에서 반올림을 한다는 뜻입니다.

 

 

 

 

 

 

 

 

밑의 예제, 결과는 양수를 대상으로 round 함수를 써본 예제, 결과입니다.

# 양수를 하나 선언합니다.
number = 9876.54321

# 매개변수가 1개이므로 소수점 첫째 자리인 5에서 반올림한 결과인 9877을 출력합니다.
# 매개변수가 1개일 때는 반환형이 정수인 int입니다.
print("매개변수가 1개일 때의 결과:", round(number))
print("매개변수가 1개일 때 결과의 반환형:", type(round(number)))
print("----------------------------------------------------\n")

# 두 번째 매개변수가 0이므로 일의 자리까지 표현합니다.
# 즉, 소수점 첫째 자리인 5에서 반올림한 결과인 9877.0을 출력합니다.
# round 함수에서 두 번째 매개변수가 있다면 float 형태로 반환됩니다.
# 따라서 round 함수에서 두 번째 매개변수를 사용하지 않은 결과와 숫자값은 같지만,
# 뒤에 .0이 붙은 반환형인 float로 반환됩니다.
print("두 번째 매개변수가 0일 때의 결과: ", round(number, 0))
print("두 번째 매개변수가 0일 때 결과의 반환형:", type(round(number, 0)))
print("----------------------------------------------------\n")

# 두 번째 매개변수가 1이므로 소수점 첫째 자리까지 표현합니다.
# 즉, 소수점 둘째 자리인 4에서 반올림한 결과인 9876.5를 출력합니다.
print("두 번째 매개변수가 1일 때의 결과: ", round(number, 1))
print("두 번째 매개변수가 1일 때 결과의 반환형:", type(round(number, 1)))
print("----------------------------------------------------\n")

# 두 번째 매개변수가 2이므로 소수점 둘째 자리까지 표현합니다.
# 즉, 소수점 셋째 자리인 3에서 반올림한 결과인 9876.54를 출력합니다.
print("두 번째 매개변수가 2일 때의 결과: ", round(number, 2))
print("두 번째 매개변수가 2일 때 결과의 반환형:", type(round(number, 2)))
print("----------------------------------------------------\n")

# 두 번째 매개변수가 -1이므로 십의 자리까지 표현합니다.
# 즉, 일의 자리에서 반올림한 결과인 9880.0을 출력합니다.
print("두 번째 매개변수가 -1일 때의 결과: ", round(number, -1))
print("두 번째 매개변수가 -1일 때 결과의 반환형:", type(round(number, -1)))
print("----------------------------------------------------\n")

# 두 번째 매개변수가 -2이므로 백의 자리까지 표현합니다.
# 즉, 십의 자리에서 반올림한 결과인 9900.0을 출력합니다.
print("두 번째 매개변수가 -2일 때의 결과: ", round(number, -2))
print("두 번째 매개변수가 -2일 때 결과의 반환형:", type(round(number, -2)))
print("----------------------------------------------------\n")

양수에서의 round 함수 결과

 

 

 

밑의 예제는 음수를 대상으로 round 함수를 써본 예제입니다.

사람이 음수를 반올림하는 방법은 밑의 링크에서 파트 2 특별한 경우에서 2번 항목을 확인하시면 됩니다.

 

소수 첫째 자리까지 반올림하는 법

소수점 첫째 자리까지 반올림을 하여 숫자를 쉽게 만들어야 할 때가 종종 있을 겁니다. 소수점 첫째 자리와 둘째 자리를 찾는 법만 이해하면 사실 과정 자체는 정수를 반올림 하는 법과 비슷합

ko.wikihow.com

# 음수를 하나 선언합니다.
number = -9876.54321

# 매개변수가 1개이므로 소수점 첫째 자리인 5에서 반올림한 결과인 -9877을 출력합니다.
# 매개변수가 1개일 때는 반환형이 정수인 int입니다.
print("매개변수가 1개일 때의 결과:", round(number))
print("매개변수가 1개일 때 결과의 반환형:", type(round(number)))
print("----------------------------------------------------\n")

# 두 번째 매개변수가 0이므로 일의 자리까지 표현합니다.
# 즉, 소수점 첫째 자리인 5에서 반올림한 결과인 -9877.0을 출력합니다.
# round 함수에서 두 번째 매개변수가 있다면 float 형태로 반환됩니다.
# 따라서 round 함수에서 두 번째 매개변수를 사용하지 않은 결과와 숫자값은 같지만,
# 뒤에 .0이 붙은 반환형인 float로 반환됩니다.
print("두 번째 매개변수가 0일 때의 결과: ", round(number, 0))
print("두 번째 매개변수가 0일 때 결과의 반환형:", type(round(number, 0)))
print("----------------------------------------------------\n")

# 두 번째 매개변수가 1이므로 소수점 첫째 자리까지 표현합니다.
# 즉, 소수점 둘째 자리인 4에서 반올림한 결과인 -9876.5를 출력합니다.
print("두 번째 매개변수가 1일 때의 결과: ", round(number, 1))
print("두 번째 매개변수가 1일 때 결과의 반환형:", type(round(number, 1)))
print("----------------------------------------------------\n")

# 두 번째 매개변수가 2이므로 소수점 둘째 자리까지 표현합니다.
# 즉, 소수점 셋째 자리인 3에서 반올림한 결과인 -9876.54를 출력합니다.
print("두 번째 매개변수가 2일 때의 결과: ", round(number, 2))
print("두 번째 매개변수가 2일 때 결과의 반환형:", type(round(number, 2)))
print("----------------------------------------------------\n")

# 두 번째 매개변수가 -1이므로 십의 자리까지 표현합니다.
# 즉, 일의 자리에서 반올림한 결과인 -9880.0을 출력합니다.
print("두 번째 매개변수가 -1일 때의 결과: ", round(number, -1))
print("두 번째 매개변수가 -1일 때 결과의 반환형:", type(round(number, -1)))
print("----------------------------------------------------\n")

# 두 번째 매개변수가 -2이므로 백의 자리까지 표현합니다.
# 즉, 십의 자리에서 반올림한 결과인 -9900.0을 출력합니다.
print("두 번째 매개변수가 -2일 때의 결과: ", round(number, -2))
print("두 번째 매개변수가 -2일 때 결과의 반환형:", type(round(number, -2)))
print("----------------------------------------------------\n")

음수에서의 round 함수 결과

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

 

 

 

다음 글:

2021.05.15 - [프로그래밍/Python] - [Python] round 함수 : 반올림 (2) - 예상과는 다른 결과

 

[Python] round 함수 : 반올림 (2) - 예상과는 다른 결과

이전에 파이썬에서 반올림을 할 때 사용하는 함수 round에 대해 포스팅해봤습니다. 그런데, 이 round 함수는 우리가 일반적으로 알고 있는 결과와 다르게 나올 때가 있습니다. 다음은 우리가 알고

brightnightsky77.tistory.com

반응형

댓글