컴퓨터:integer_and_floating_point
[홈레코딩 필독서]"모두의 홈레코딩"구매링크
가성비 있는 녹음실 찾으시나요? 리버사이드 재즈 스튜디오에서 녹음하세요!
[공지]회원 가입 방법
[공지]글 작성 및 수정 방법
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판 | ||
컴퓨터:integer_and_floating_point [2025/01/01] – 정승환 | 컴퓨터:integer_and_floating_point [2025/01/01] (현재) – [부동소수점 연산의 정밀성 손실] 정승환 | ||
---|---|---|---|
줄 39: | 줄 39: | ||
부동소수형 숫자 표현의 범위\\ | 부동소수형 숫자 표현의 범위\\ | ||
- | * 32bit 부동소수형의 가장 작은 숫자 = 1.0 x 2< | + | * 32bit 부동소수형의 가장 작은 숫자 = 1.0 x 2< |
- | * 32bit 부동소수형의 가장 큰 숫자 = (2 - 2< | + | * 32bit 부동소수형의 가장 큰 숫자 = (2 - 2< |
=====부동소수점 연산의 정밀성 손실===== | =====부동소수점 연산의 정밀성 손실===== | ||
줄 47: | 줄 47: | ||
예를 들어, 우리가 다음과 같은 두 개의 부동소수를 더한다고 가정해봅시다: | 예를 들어, 우리가 다음과 같은 두 개의 부동소수를 더한다고 가정해봅시다: | ||
- | * <m>0.1 * 10^{-20}</m> | + | * 0.1 x 10<sup>-20</sup> |
- | * <m>0.2 * 10^{-20}</m> | + | * 0.2 x 10<sup>-20</sup> |
- | 이 두 부동소수를 더하면 우리는 | + | 이 두 부동소수를 더하면 우리는 0.3 x 10<sup>-20</sup>이 나와야 한다고 예상할 수 있습니다. 그러나 컴퓨터에서는 부동소수점을 표현할 때 소수점 이하의 정밀도에 한계가 있기 때문에 정확한 결과를 얻기 어렵습니다. |
실제로 컴퓨터에서 이러한 덧셈을 수행하면 다음과 같은 결과가 나올 수 있습니다: | 실제로 컴퓨터에서 이러한 덧셈을 수행하면 다음과 같은 결과가 나올 수 있습니다: | ||
- | * <m>0.1 * 10^{-20}</m>를 표현할 때 발생하는 정밀성 손실로 인해 실제로는 | + | * 0.1 x 10<sup>-20</sup>를 표현할 때 발생하는 정밀성 손실로 인해 실제로는 0.10000000000000000000005 |
- | * <m>0.2 * 10^{-20}</m>도 마찬가지로 정밀성 손실로 인해 | + | * 0.2 x 10<sup>-20</sup>도 마찬가지로 정밀성 손실로 인해 0.20000000000000000000004 |
- | 따라서 이 두 수를 더하면 | + | 따라서 이 두 수를 더하면 0.30000000000000000000009 |
이러한 예시를 통해, 부동소수 연산에서의 정밀성 손실이 어떻게 발생하는지 좀 더 구체적으로 이해할 수 있습니다. | 이러한 예시를 통해, 부동소수 연산에서의 정밀성 손실이 어떻게 발생하는지 좀 더 구체적으로 이해할 수 있습니다. | ||
- | 이러한 오차는 금융 분야에서의 시간, 금액 계산이나, | + | 이러한 오차는 금융 분야에서의 시간, 금액 계산이나, |
[공지]회원 가입 방법
[공지]글 작성 및 수정 방법
컴퓨터/integer_and_floating_point.1735713943.txt.gz · 마지막으로 수정됨: 저자 정승환