부동 소수점 오차

250x250

부동 소수점 오차.

안녕하세요.

오늘은 부동 소수점 오차에 대한 내용입니다.

이 글에서는 최소한의 설명과 예제코드만 있으므로 자세한 내용을 알고 싶다면 더 검색하는 것을 추천드립니다.

  • 오차 발생 이유.
  • 오차가 발생하는 코드 예시.
  • 코드 실행 결과.

오차 발생 이유.

부동 소수점 오차가 발생하는 이유는 컴퓨터는 모든 실수를 정확히 표현할 수 없기 때문입니다.

실수의 값을 정확하게 표현할 수 없어서 표현해야 하는 아주 근사치의 값을 가지고 실수를 표시하기 때문에 아주 조금의 오차가 발생합니다.

오차가 발생하는 코드 예시.

아래 코드는 오차가 발생하는 것을 확인하기 위한 간단한 코드입니다.

#include<stdio.h>
int main(){
	int i=0;
	float j=10;
	for(;i<100;i++)
		j-=0.1;
	printf("%f\n",j);
	if(j==0){
		printf("yes");
	}
	else 
		printf("no");
	return 0;
}

코드 실행 결과.

위의 코드는 실수의 표현에 오차가 없다면 j의 값이 0으로 출력되고 yes를 출력해야 하는 코드입니다.

그런데 실행해보면 -0.000002를 출력하네요.

Designed by JB FACTORY