티스토리 뷰

 
1 + 1 == 2
 

 

위의 결과는 True

 

 
0.1 + 1.1 == 1.2
 

 

위의 결과는 False가 나오는 이유가 무엇일까?

 

컴퓨터는 2진수로 숫자를 표현한다. 

파이썬에서(다른 언어도 마찬가지) 실수를 표현할 때 부동소수점 방식을 사용한다.

( 0.1 <- 고정소수점, 0.01 * 10 <- 부동소수점 )

컴퓨터로 실수를 표현하는 데에 효율적이지만, 동시에 실수를 정확히 표현하는데 한계가 있어서 오차가 발생한다.

따라서 0.1 + 1.1 의 결과는 1.2000000000002 이런식으로 나오게 된다.

 

파이썬에서 제공하는 math 함수를 사용하면 해결 가능하다.

 
import math
math.isclose(0.1 + 0.2, 0.3)
 

 

위의 결과는 True

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함