2011-08-10 3 views
6

아웃을 int로 내가 다음 실행 :파이썬 지수에 대한 질문과 호기심의

>>> int(1e100) 

그리고, 출력을했다 :

10000000000000000159028911097599180468360808563945281389781327557747838772170381060813469985856815104L 

이유는 무엇입니까?

10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L 

이이 int 기능의 제품입니다, 또는 큰 long의 저장의 : 왜 이런 일이 같이하지 않는 이유는 무엇입니까?

+0

대신이 시도 :'10 ** 100' 당신은 당신이 기대하는 것을 얻을 것이다. 이 방법에는 부동 소수점이 없습니다. – Keith

+0

@keith - 감사합니다. 나는 이것을 실질적으로 필요로하지 않는다. 나는 단지 호기심을 시험했다. – orokusaki

답변

1

부동 소수점으로 변환 된 다음 정수로 표시됩니다.

0

1e100 라운딩의 부정확 한 세계에 그래서 오신 것을 환영합니다 (e이 의미하는 플로트를 사용하여, 일반적으로) 부동이다

>>> type (1e100) 
<type 'float'> 
관련 문제