콘텐츠로 건너뛰기

파이썬으로 소수점 자리 올리는 방법은? (How to round up decimal places in Python?)

CodeMDD.io

파이썬에서 숫자 반올림하는 방법

파이썬은 데이터를 분석하기 위해 강력한 데이터 과학 생태계를 활용하는 많은 기업들이 있습니다. 데이터 세트에 편향을 도입하지 않기 위해 숫자 반올림이 어떻게 작동하는지 이해하는 것이 매우 중요합니다. 편향된 데이터에서 결론을 내린다면 비용이 많이 소요될 수 있습니다.

이 튜토리얼에서는 다음과 같은 내용을 배우게 됩니다.

  • 숫자 반올림 방법의 중요성
  • 다양한 반올림 전략에 따른 숫자 반올림 방법
  • 각 전략을 순수한 파이썬으로 구현하는 방법
  • 반올림이 데이터에 미치는 영향과 이를 최소화하는 반올림 전략
  • NumPy 배열과 pandas DataFrame에서 숫자를 반올림하는 방법
  • 각기 다른 반올림 전략을 적용하는 시기

퀴즈 참여하기: Python에서 숫자 반올림 퀴즈를 통해 지식을 테스트하십시오. 완료하면 점수가 제공되어 학습 과정을 추적할 수 있습니다.

컴퓨팅에서 숫자 정밀도에 대한 논문은 다루지 않을 것입니다. 다만 파이썬의 기본기를 알고 있다면 충분하며, 고등학교 대수학을 이해한다면 수학적인 개념에 익숙할 것입니다.

먼저 파이썬의 내장 반올림 메커니즘을 살펴보겠습니다.

파이썬의 내장 round() 함수

파이썬에는 두 개의 숫자 인수인 nndigits를 받아들이고 ndigits로 반올림된 숫자 n을 반환하는 내장 round() 함수가 있습니다. ndigits인수의 기본값은 0이므로, ndigits를 생략하면 정수로 반올림된 숫자가 반환됩니다. 하지만 round()가 예상과 같이 동작하지 않을 수도 있습니다.

대부분의 사람들이 숫자를 반올림하는 방법을 배울 때 주로 다음과 같은 알고리즘을 사용합니다.

  • 첫째 자리부터 p 소수 자리까지의 n 숫자를 반올림하려면, 먼저 n의 소수점을 왼쪽으로 p 자리 만큼 이동합니다. 이를 위해 n을 10ᵖ (10의 p승)으로 곱하여 새로운 숫자 m을 얻습니다.

  • 그런 다음 m의 첫 번째 소수 자리에있는 숫자 d를 확인합니다. d가 5보다 작은 경우 m을 가장 가까운 정수로 내림합니다. 그렇지 않으면 m을 올림합니다.

  • 마지막으로 m을 10ᵖ로 나누어 소수점을 p 자리만큼 다시 오른쪽으로 이동합니다.

예를 들어, 가장 가까운 정수로 반올림 된 2.5 숫자는 3입니다. 소수점 한 자리에서 반올림된 1.64 숫자는 1.6입니다.

이제 파이썬의 내장 round() 함수를 사용하여 2.5를 가장 가까운 정수로 반올림해 보겠습니다.

>>> round(2.5)

Step 1:

>>> n = 2.5
>>> p = 0
>>> m = n * 10**p
>>> m

Step 2:

>>> d = m % 10
>>> if d < 5:
... r = m https://codemdd.io/ 10
... else:
... r = m https://codemdd.io/ 10 + 1
...
>>> r

Step 3:

>>> result = r https://codemdd.io/ 10**p
>>> result

이와 같은 방법으로 파이썬의 내장 round() 함수로 2.5를 가장 가까운 정수로 반올림해 보세요.