개발자 블로그
컴퓨터에서 0.1은 왜 0.1이 아닐까 본문
컴퓨터에서 숫자를 기억하는 방식은 2진수 즉, 0과 1로만 모든 것을 표현한다. 이 때문에 오는 오차가 있어 사용 시 주의해야할 상황이 있는데 이는 float 타입을 사용할 때이다.
예를들어, 0.1이라는 숫자를 컴퓨터가 저장하는 방식은 이진수로 나타낸다면, 무한히 반복되는 숫자가 되버린다. 하지만 컴퓨터는 이러한 수를 근삿값으로 저장한다. 떄문에 정확한 값을 저장하지 않는다는 말!
이러한 문제를 해결하기 위해 파이썬에서는 decimal.Decimal, round() 등 여러가지 메소드를 통해 부동소수의 한계를 해결하는 방법 등이 있긴하다. 하지만, 이 또한, 완벽히 문제를 해결하는 방법이 아닐 수도 있으니, 사용할 시 주의하고 상황에 맞는 방법을 활용하도록 하자!
결론, 정확한 소수점 계산을 해야할 때에는 부동소수점의 한계를 알고 상황에 맞는 메소드와 해결방법을 채택하여 사용하자!
'CS > 자료구조' 카테고리의 다른 글
DFS & BFS (0) | 2022.07.14 |
---|---|
해쉬 테이블 (0) | 2022.07.06 |
Array and LinkedList (0) | 2022.07.05 |