콘텐츠로 건너뛰기

파이썬 round와 upper 사용법과 문제 해결 방법

[

Python에서 숫자를 반올림하는 방법

David Amos의 기사를 번역한 것입니다.

다양한 반올림 전략에 따라 숫자를 반올림하는 방법을 배우고, 이를 순수한 Python으로 구현하는 방법, 반올림이 데이터에 미치는 영향 및 이를 최소화하는 반올림 전략을 배우게 될 것입니다. 또한 NumPy 배열과 pandas DataFrame에서 숫자를 반올림하는 방법과 언제 다른 반올림 전략을 사용해야 하는지에 대해서도 알아볼 것입니다.

Python 내장 round() 함수

Python에는 두 개의 숫자 인수 n과 ndigits를 가지는 내장 round() 함수가 있습니다. 이 함수는 숫자 n을 ndigits까지 반올림한 값을 반환합니다. ndigits 인수는 기본값으로 0을 가지므로 생략하면 정수로 반올림된 숫자가 반환됩니다. 그러나 round() 함수는 예상대로 작동하지 않을 수도 있습니다.

모두가 숫자를 반올림하는 방법에 대해 이렇게 가르쳐집니다.

  • 첫째, 숫자 n을 p(정수) 십진수 자리까지 반올림합니다. 그렇게 하기 위해서는 숫자 n을 10^p(10의 p승)으로 곱하여 새로운 숫자 m을 얻습니다.
  • 그런 다음 m의 첫번째 십진수 자리 숫자 d를 확인합니다. 만약 d가 5보다 작다면, m을 가장 가까운 정수로 내림합니다. 그렇지 않으면 m을 올림합니다.
  • 마지막으로, m을 10^p로 나누어서 소수점을 다시 p자리만큼 이동시킵니다.

예를 들어, 숫자 2.5를 가장 가까운 정수로 반올림하면 3이 됩니다. 숫자 1.64를 소수점 첫 번째 자리까지 반올림하면 1.6이 됩니다.

Python의 내장 round() 함수를 사용하여 대화형 세션에서 숫자 2.5를 가장 가까운 정수로 반올림해 봅시다.

round(2.5)

결과는 2입니다. 왜냐하면 round() 함수는 round half to even (반올림/내림, 짝수 쪽으로) 전략을 따르기 때문입니다. 만약, round half up (반올림/올림), round half down (반올림/내림), round half away from zero (반올림/0에서 멀어지는 쪽으로)와 같은 다른 반올림 전략을 사용하려면 어떻게 해야 할까요? Python에서는 이를 구현하는 여러 방법이 있습니다.

Rounding Bias (반올림 편향)

반올림은 결정을 내릴 때 편향을 발생시킬 수 있습니다. 특히 작은 숫자 집합이라면 이 편향은 심각한 문제를 야기할 수 있습니다. 예를 들어, 게임 스코어를 반올림할 때, 4가 아닌, 0인 숫자에서 1.8을 반올림하는 음수 편향이 발생할 수 있습니다.

이러한 편향을 방지하는 방법 중 하나는 round half to even (반올림/내림, 짝수 쪽으로) 전략을 사용하는 것입니다. 이 전략은 결과가 정확하게 중간에 있는 숫자에 얽매이지 않도록 보장합니다. 이러한 반올림 전략을 사용하면 통계적으로 데이터 분포에서 편향을 제거할 수 있습니다.