python 터미널 실행과 디버그 실행의 차이


안녕하세요.

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 _ _ 를 봐도 딱히 느낌오는게 없습니다.

그리고 제가 디버거 초보입니다. ☞☜ 전 터미널실행이나 디버거 실행이나 같은 줄 알았습니다. 어느점이 다른가요? 디버깅에선 부동소수점을 제대로 표현할 수는 없을까요?

  • 2018년 02월 06일에 작성됨

조회수 99


20180214banner blockchain

1 답변


일단 파이썬 버전부터 각각 확인해보세요.

그리고 cpu는 부동소숫점 연산을 제대로 표현을 못합니다.

https://ko.wikipedia.org/wiki/IEEE_754

파이썬에서 부동소숫점처리하기

https://winterj.me/Floating-Point/

  • 2018년 02월 07일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close