2016-07-10 5 views
2

WinPython 3.4.4.2을 사용하여, 나는 다음과 같은 이상한 결과를 얻을 :파이썬 : 작은 비정규 이중 오류

입니다
>>> 2**-1075 
5e-324 

, 2**-1074와 같은, 2**-1075 반면 더블 부동 소수점 표현 0이어야합니다. 주소가 https://www.python.org/shell/ 인 Python 3.5.1에서는 예상대로 0이됩니다.

누가 잘못 될지 이해하는 데 도움을 줄 수 있습니까?

+0

결과를 복사 할 수 없습니다. Python 3.4.3 (기본값, Oct 14, 2015, 20:28:29) [GCC 4.8.4] on Linux "help", "copyright", "credits"또는 자세한 내용은 "라이센스"를 참조하십시오. >>> 2 ** - 1075 0.0 >>> –

+0

부동 소수점 올림 모드와 관련이있는 작업을 수행 했습니까? 지수를 더 낮추려면 어떻게해야합니까? – user2357112

+0

나는 아무것도하지 않았고, WinPython을 설치했고 즉시 테스트를 수행했다. 나는 더 낮은 지수를 위해 0.0을 올바르게 맞춘다 : 이것은 오직 하나만 잘못된 답을 준다! –

답변

1

작은 재 흉 ​​비정규가 0보다 크고, 작은 수레 감사합니다 5E-324 및 -5e-324.

5E-324 부동 소수점 엡실론 (2.220446049250313e 16)와 최소의 부동 소수점 수 (2.2250738585072014e-308)을 곱함으로써 달성 될 수있는 비정규 최소이다.

import sys 
print(sys.float_info.min*sys.float_info.epsilon) 

출력 :

5e-324 

나는 또한 내 껍질에서 동일한 결과를 얻을 수 (파이썬 3.5.1). 주소 https://www.python.org/shell/은 해당 시스템에서 이러한 작업을 제어 할 수있는 http://www.pythonanywhere.com/의 콘솔을 사용합니다.

+0

이것은 내 질문에 답하지 않습니다. –