python 터미널 실행과 디버그 실행의 차이
조회수 1806회
안녕하세요.
linux에서 vscode로 python 코딩을 해보다가 단순한 나숫셈에서 이해하기 어려운 결과가 나와서 질문합니다.
python 터미널실행과 디버그 실행에 차이가 있나요?
일일기온을 가지고 연도별 평균을 구하는 분석을 하고 있었습니다. 터미널에서 실행하기 귀찮으면 f5를 연타해서 디버거 모드로 실행해보곤 했었는데 round( 나눗셈, 2) 함수나, print( 29/4) 모두 소수점 아래로 버림을 해버립니다.
데이터:
...
2008: [18, 9, 4, 6, 1, 7, 8]
, 2009: [5, 8, 13, 3]
...
연산: avgTemperature[year] = round(sum / len(tempList), 3)
결과:
,,, 2003: 5.0, 2004: 1.0, 2005: 19.0, 2006: 2.0, 2008: 8.0, 2009: 7.0}
혹시해서 해봤는데
print(round(3.141592, 2)) #3.14
print(round(29/4, 3)) #7.0
print(29/4) #7
print(3/4) #0
결과가 왜이러는지 모르겠습니다..
터미널에선 같은 파일을 $ python3.6 파일명.py 로 실행하면 부동소수점이 제대로 작동하는데, (2008: 8.25 , 2009: 7.25..) 디버그모드로 하면 왜 이런 강제적인 나눗셈이 되는지 궁금합니다.
혹시 제 설정이 뭐가 잘못된건지 ㅠㅠ.. _ _builtins _ _ 를 봐도 딱히 느낌오는게 없습니다.
그리고 제가 디버거 초보입니다. ☞☜ 전 터미널실행이나 디버거 실행이나 같은 줄 알았습니다. 어느점이 다른가요? 디버깅에선 부동소수점을 제대로 표현할 수는 없을까요?
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
일단 파이썬 버전부터 각각 확인해보세요.
그리고 cpu는 부동소숫점 연산을 제대로 표현을 못합니다.
https://ko.wikipedia.org/wiki/IEEE_754
파이썬에서 부동소숫점처리하기
댓글 입력