과제
1 + 1
2
1 + 1 == 2
True
0.1 + 1.1
1.2000000000000002
0.1 + 1.1 == 1.2
False
위 결과 왜 저렇게 나옴??? 😲
답:
a = 0.1 + 1.1
b = 1.2
print(a)
print(b)
print(a==b)
1.2000000000000002
1.2
False
이 코드에서 예상했을 것과는 다르게, a와 b의 값이 같지 않다. 이는 부동 소수점 연산에 의한 정확도 문제 때문이다.
컴퓨터에서 부동 소수점을 정확하게 표현하는 것은 어렵기 때문에 비교 시에 주의해야 한다.
a는 1.2000000000000002이고, b는 1.2이다. 따라서 두 값은 같지 않다.
부동 소수점 값을 비교할 때는 어느 정도의 정밀도나 허용 오차를 고려하여 비교하는 것이 좋다.
'Python > 개념' 카테고리의 다른 글
2024-03-13 파이썬 컬렉션 타입 - 튜플 (0) | 2024.03.13 |
---|---|
2024-03-13 파이썬 컬렉션 타입 - 리스트 (0) | 2024.03.13 |
2024-03-12 문자열 다루기 (0) | 2024.03.12 |
2024-03-12 파이썬의 변수 (0) | 2024.03.12 |
2024-03-12 print 함수 (0) | 2024.03.12 |