728x90
반응형
- 파이썬에서 소수점 계산값의 결과를 비교할 때 부동소수점을 주의해야 한다.
- 컴퓨터는 이진법으로 수를 계산하기 때문에, 사람이 인지하는 숫자와 컴퓨터가 인지하는 숫자에 오차가 발생할 수 있다.
print(3.2-3.1 == 0.1) #0.099999999999987
# False
사람에게 3.2 - 3.1을 계산하도록 시킨다면 0.1을 답으로 제출할 것이다. 비교연산자 == 을 이용해 0.1과 비교했을 때 True를 반환할 것이다. 그러나 컴퓨터는 3.2-3.1 == 0.1의 값에 대해 False를 반환한다. 그 이유는 소수점 연산에 대해 딱 떨어지는 수가 아닌 매우 작은 수(입실론) 만큼의 오차가 발생하기 때문이다.
python 3.5 이상에서는 math 모듈을 사용해서 부동소수점 문제를 해결할 수 있다.
import math
print(math.isclose(3.2, 3.1)
#True
'IT 상식' 카테고리의 다른 글
[CS-네트워크] 네트워크 계층 3, 4강 (0) | 2022.11.08 |
---|---|
[파이썬] The Zen of Python (0) | 2022.08.18 |
[Spring] Spring을 배우면 JSP를 배우지 않아도 될까? (0) | 2022.05.04 |
[특강] 2021 전주 ICT 이노베이션 스퀘어 명사 특강_블록체인 (0) | 2021.12.07 |
블록체인 원리에 대한 간단한 설명과 예시 (0) | 2021.12.04 |