python 큰수 나눗셈 오류
조회수 799회
import decimal
A=100000000000000000000000
B=1
print(decimal.Decimal(A/B))
코드 실행시 출력값이 99999999999999991611392
입니다. 무슨 오류인지 궁금합니다.
1 답변
-
python3 에서는 python2 와 달리 나눗셈은 부동소수점 연산입니다. 부동소수점 제약에 대해서는 https://docs.python.org/3/tutorial/floatingpoint.html 를 참고하시기 바라구요.
In [1]: 10/3 Out[1]: 3.3333333333333335
그러면 해결방법은 python3 에서 정수형 나눗셈을 하면 되겠지요. 아래와 같이 // 를 두개 사용하면 정수형 나눗셈입니다.
In [1]: import decimal ...: A=100000000000000000000000 ...: B=1 In [1]: print(decimal.Decimal(A//B)) 100000000000000000000000
댓글 입력