• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

파이썬으로 곱셈계산시 실제 계산값과 다릅니다.

23.09.17 18:28 작성 23.09.17 18:31 수정 조회수 222

0

 소수점이 들어간 곱셈을 하면 파이썬과 계산기가 다릅니다.

예를들면 2050 * 1.00014를 해보겠습니다.

실제 계산값은 2050.287 이 나옵니다.

그러나 파이썬은 2050.2870000000003이 나오는데요.

뒤에 0.0000000000003 이게 왜 붙는거죠?

혹시나 해서 2050.287과 2050*1.00014가 같은지도 물어보니 역시 다른 값으로 인식합니다.

round 함수를 사용한다면 교정할 수 있겠지만,

이런 문제가 왜 생기는 것인지,

그리고 이런 문제를 근본적으로 해결할 수 있는 방법이 궁금합니다.

파이썬 질문.jpg

 

답변 1

답변을 작성해보세요.

0

안녕하세요.

부동소수점에 대해서 질문을 주셨네요.

실수범위를 완벽하게 표현할 수 없습니다.

이는 파이썬의 문제가 아니라 각 언어에서도 중요한 부분이예요.

내용이 방대해지니 링크를 하나 드리겠습니다.

한 번 읽어보세요.

"부동소수점(실수를 제대로 표현할 수 없는 이유)

https://dataonair.or.kr/db-tech-reference/d-lounge/expert-column/?mod=document&uid=52381#:~:text=%EC%88%98%ED%95%99%20%EA%B5%90%EA%B3%BC%20%EA%B3%BC%EC%A0%95%EC%97%90%EC%84%9C%20%EB%B0%B0%EC%9A%B4,%ED%91%9C%ED%98%84%ED%95%A0%20%EC%88%98%20%EC%97%86%EA%B8%B0%20%EB%95%8C%EB%AC%B8%EC%9D%B4%EB%8B%A4.