인프런 커뮤니티 질문&답변

jwbaek4님의 프로필 이미지

작성한 질문수

문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!

1.5 jupyter 실행하기

수치 연산?

해결된 질문

작성

·

64

0

3 * 0.1을 계산하면, 0.3이 나오지 않습니다. 0.3이 나오게 하려면 어떻게 하나요?

image.png


답변 1

0

DeepingSauce님의 프로필 이미지
DeepingSauce
지식공유자

컴퓨터는 숫자를 저장하고 계산할 때 0과 1로 이루어진 이진법(바이너리)이라는 방식을 사용해요. 우리가 사용하는 십진법(10진법)과는 다르게, 이진법에서는 소수점 숫자들을 완벽하게 표현하기 어려운 경우가 많아요.

예를 들어, 0.1이라는 숫자를 이진법으로 표현하려고 하면 끝이 없는 소수로 나타나요. 이는 마치 우리가 1/3을 십진법으로 표현하면 0.33333... (계속 3이 반복되는 것)과 비슷해요. 그래서 컴퓨터는 이런 숫자를 정확하게 저장할 수 없고, 대신 아주 근사한 값을 저장해요.

이로 인해 3 0.1을 계산할 때, 컴퓨터는 0.1을 완벽하게 표현하지 못하고 약간의 오차가 있는 값으로 계산하게 돼요. 그래서 3 0.1을 계산하면 0.3 대신에 0.30000000000000004 같은 결과가 나올 수 있는 거죠.

 

jwbaek4님의 프로필 이미지
jwbaek4
질문자

감사합니다.^^

jwbaek4님의 프로필 이미지

작성한 질문수

질문하기