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를 출력하네요.