본문 바로가기
C언어

[C언어] 실수 상수의 오차

by 에파 2021. 5. 8.
728x90

C언어 실수 상수의 오차

 

 

실수 상수의 경우 표현할 수 있는 값의 범위는 상당히 넓습니다. 그러나 값의 크기와 달리 정확한 값을 표현하는 데에는 한계가 있습니다. 오차가 발생하는 이유는 소수 부분을 나타내는 비트가 정확한 값을 표현할 수 없기 때문입니다. 소수 부분을 4비트로 표현할 때 각 비트가 나타내는 10진수 값은 다음과 같습니다.

 

 

 

예를 들어 0.09와 같은 값도 가장 가까운 값인 0.0625 나 0.125 로 저장할 수 밖에 없습니다. 비트 수가 늘어나면 더 정확하게 표현할 수 있겠지만 유효 숫자 수도 한계가 있습니다. 결론적으로 IEEE 754 표준 계산식에 의하면 double형의 경우 15자리까지 유효 숫자를 사용할 수 있습니다. 그러니 15자리 범위에서 사용하는 것이 바람직합니다.

댓글