티스토리 뷰

파이썬에서 decimal 초기화 하기

이 문서는 2017-09-19 에 작성되었습니다.
이 문서는 python3.x 에서 테스트하였습니다.

파이썬에서 소수점 연산을 위해 사용하는 decimal 패키지가 있습니다.

그런데 이것을 사용하기 위해, decimal 컨텍스트에서 rounding 옵션, 자리수 옵션등을 설정한 후

decimal.Decimal(0.1) 을 넣으면 Decimal('0.1') 이 되지 않고 아래와 같이 초기화됩니다.:

Decimal('0.1000000000000000055511151231257827021181583404541015625')

그리고, 저렇게 된 Decimal 들 끼리 연산하게 되면 decimal 컨텍스트에 설정한 대로 자리수나, rounding 처리가 되어 결과값이 출력됩니다.

어쨋든, 초기값을 원하는대로 제어하기 위해 검색해보니 다음과 같은 방법으로 처리가 가능하였습니다.

decimal.Decimal(0.1).quantize(decimal.Decimal('1.2'))
Decimal('0.1')

# or

decimal.Decimal('0.1')
Decimal('0.1')

이 이외에도 다양한 옵션들이 존재 하니, 공식 홈페이지를 참고하시면 될듯합니다.