728x90
3*3.3
9.899999999999999
정수형x실수형 값이 이상하게 나온다.
컴퓨터가 실수를 표현할때 오차가 발생하기 때문인데
decimal, fraction 모듈을 써서 정확히 계산해주면 된다.
0.1 + 0.2 == 0.3
False
또한 두 실수가 같은지 확인할때도 이렇게 하면 안된다.
0.1+0.2
0.30000000000000004
근사값으로 표현하면서 발생함. 부동소수점 반올림 오차라고 함.
두 값이 차이가 sys.float_info.epsilon 보다 작거나 같으면 두 값은 같다고 판단.
sys.float_info.epsilon에 저장된 값을 머신 입실론(machine epsilon)이라고 함
단순히 두 값이 같은지 판단할때는 math.isclose 함수를 쓰면 된다.
import math
math.isclose(0.1+0.2,0.3)
True
'파이썬 > 파이썬 기초' 카테고리의 다른 글
Python을 활용 Excel 파일 생성 및 내용 수정 (9) | 2022.12.29 |
---|---|
파이썬 pandas columns 인덱스삭제(컬럼명이 같을 경우) (0) | 2022.12.14 |
파이썬과 R에서 같은 난수 발생 패키지 SyncRNG (0) | 2022.12.14 |
파이썬 자료형의 값을 저장하는 공간, 변수 (2) | 2022.12.13 |
파이썬 문자열 (0) | 2022.12.12 |