Python3로 알고리즘 문제를 풀게된다면 소수점 반올림 구하기 문제가 간혹 나옵니다.

 

round(number[, ndigits])
number 를 소수점 다음에 ndigits 정밀도로 반올림한 값을 돌려줍니다. ndigits 가 생략되거나 None 이면, 입력에 가장 가까운 정수를 돌려줍니다.

round() 를 지원하는 내장형의 경우, 값은 10의 -ndigits 거듭제곱의 가장 가까운 배수로 반올림됩니다; 두 배수가 똑같이 가깝다면, 반올림은 짝수를 선택합니다 (예를 들어, round(0.5) 와 round(-0.5) 는 모두 0 이고, round(1.5) 는 2 입니다). 모든 정숫값은 ndigits 에 유효합니다 (양수, 0 또는 음수). ndigits 가 생략되거나 None 이면, 반환 값은 정수입니다. 그렇지 않으면 반환 값은 number 와 같은 형입니다.

일반적인 파이썬 객체 number 의 경우, round 는 number.__round__ 에 위임합니다.

참고 float에 대한 round() 의 동작은 예상과 다를 수 있습니다: 예를 들어, round(2.675, 2) 는 2.68 대신에 2.67 을 제공합니다. 이것은 버그가 아닙니다: 대부분의 십진 소수가 float로 정확히 표현될 수 없다는 사실로부터 오는 결과입니다. 자세한 정보는 부동 소수점 산술: 문제점 및 한계 를 보세요.

위 설명은 파이썬 공식문서에서 round 내장함수에 대한 설명 입니다.

 

python3 round() 함수 사용법:

round(3.14) # 결과 : 3 /* 소수점 첫번째 반올림 */

round(3.1488,2) # 결과 : 3.14 /* 소수점 두번째 반올림 */

round(31.18,-1) # 결과 : 30.0 /* 일의 자리 반올림 */

 

주의사항 : 소수점 끝자리 0은 잘려서 나옵니다.

 

이에 대한 해결책은 아래 링크에서 확인해주세요.

2021.03.27 - [Python3] - [Python3] 소수점 이하 자리수 출력하기

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기