가능한 중복 : 여기 파이썬 2.7을 사용하여
Floating Point Limitations파이썬 쉘 - "엑스트라"를 플로트 빼기에
.
누군가 껍질에서 이런 일이 일어나는 이유를 설명 할 수 있습니까?
>>> 5.2-5.0
0.20000000000000018
올바른 결과 (매우 작은 수와 매우 큰 수)를 생산하지 수의 서로 다른 스케일에 대한 굴복 물건을 검색
하지만 꽤 일반적인 듯, 내가 사용하고 숫자를 고려하고는 동일의입니다 규모가 크지 않기 때문에 그렇게 생각하지 않습니다.
편집 : 나는 "이 일이 일어나고있다"는 뜻을 내리지 않았는데 단순히 0.2가 아닌 0.2 ... 018을 반환한다는 것을 의미한다고 생각합니다. 그 인쇄물을 얻었고 코드 스 니펫에서 인쇄 부분을 삭제했습니다. 오해의 소지가 있습니다.
이 질문에 대한 세 부분이 정말있다가 : "왜 5.2 '입니다 - = 0.2' 5.0", ""왜 표현을 인쇄로 동일한 작업을 수행하지 평가 않습니다 "을하는 이유/방법에 repr 및 STR 있습니다 다른"? 내 대답은 1 부에 초점을 맞추고, 애쉬 위니 Chaudhary의 2 부에 대한 완벽한 해답이며, 마티 피에 터스의 멋지게 3. – abarnert
이 http://docs.python.org/tutorial/floatingpoint.html를 참조 부분을 처리합니다. 그것은 Goldberg 논문보다 이슈에 대한 훨씬 더 친절한 소개입니다. –