python round 함수 round_half_even 해결하기

Surf in Data·2022년 4월 23일
1

python

목록 보기
5/15
post-thumbnail

Python의 round함수는 round half even 방식을 체택하고 있다.

  • round half even이란?
    예를 들어 0.25 를 소수 2번째 자리에서 반올림 하고싶다고 하자. 이때 모두 결과가 0.3일 것을 예상하지만 파이썬의 round()함수를 사용하면 0.2이다. 즉, 반올림 하는 자리가 정확히 절반인 5일때 앞자리가 짝수가 되도록 반올림하는것이 round half even 방식이다.

이러한 문제점을 해결하기 위해 다음과 같은 함수를 만들어보았다.

def round_half_up(x, n):
    x = int(x*(10**n) + 0.5)
    length = len(str(x))
    x = float(str(x*(10**-n))[:length+1])

    return x
profile
study blog

0개의 댓글