python 리스트 내부 연산 질문

조회수 893회

a 값을 중앙값으로 하여, b간격만큼 숫자들을 나열하여 리스트 형태로 반환하는 코드를 실행해보았더니, 중간중간에 27.700000000000003과 같은 예상과 다른 값들이 나오는 것을 볼 수 있었습니다. 해결은 쉽게 할 수 있을 것 같은데, 이런 현상이 발생하는 이유가 궁금하여 질문드립니다. 답변해주시면 감사드리겠습니다 !

python 버젼, OS : python 3.6, win10

a = 28.1
b = 0.1

li = [a-5*b, a-4*b, a-3*b, a-2*b, a-1*b, a, a+1*b, a+2*b, a+3*b, a+4*b, a+5*b]

print(li)
  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 사실 파이썬 뿐만 아니라 부동소수점 자료형을 지원하는 모든 언어에서 이런 현상을 보실 수 있는데 부동소수점이라는 방식 자체가 오차가 있을 수 밖에 없는 구조라 그렇습니다. 단순하게 생각해서 실수 0과 1사이의 무한한 값을 유한한 메모리 공간만 가지고 다 표현하는게 불가능하다는 것을 알 수 있습니다. 한번 공부해보시면 한단계 더 성장하실 수 있을겁니다 ㅎㅎ 알 수 없는 사용자 2019.1.22 19:18
  • 넵 감사드립니다 ! 알 수 없는 사용자 2019.1.22 19:48

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)