2012년 9월 8일 토요일

부동 소수점 오차(for 함수, float함수, double 함수)

이번 포스트에서는 부동 소수좀 오차를 알아갈 겁니다 .

들어가기전에 함수에 대해 알아봅시다.

일단 for 함수는 참일때까지 반복하는 함수입니다.

다들 수1에서 나오는 알고리즘을 연상했을 것이라 믿겠습니다.

그리고 쓰는 방법은

for(첫값; 끝값; 증가값;)

for(i=1; i>=10; i++)

이것은 알고리즘처럼 i가 1부터 10과 같거나 작을때까지 계속 1씩 더하는 것이다.

다음은 float 함수와 double 함수다. float는 4비트를 double은 8비트를 선언할 수 있으며 2배 차이기 때문에, 대부분에 사람들은 float함수가 필요 없다고들 합니다.

부동 소수좀 오차란 모든 프로그램에디터에 있는 오류로써 컴퓨터는 실수를 정확하게 표현을 못하고 근삿값에만 그치는 현상을 말하는 것입니다.

ex)
#include
int main(void)
{
int i;
double tender=0.0;

for(i=0; i<100; i++)
tender+=0.1//이 문장에서 텐더값을 0.1씩 100번더한다는 식입니다.

printf("0.1을 백번 더한 결과: %f \n", tender)//%f 는 10진수의 실수로 표현하라는 뜻입니다.
return 0;
}

결과

0.1을 백번 더한 결과: 10.100000

저 소수점이 바로 부동 소수점 오차이다.




댓글 없음:

댓글 쓰기