Tip은 아니고 gcc 3.0도 문제가 있지 않나 해서 올립니다.
제가 알기로는 gcc 2.96/3.0 모두 과학 계산상의 오류가 있는 것으로 알고 있습니다.
다음과 같은 test 프로그램을 돌려 보세요.
#include <stdio.h>
int main(void)
{
float a = 2.1;
double b = 2.1;
printf("%d", (int)(2.1*10));
printf("%d", (int)((a*10));
printf("%d", (int)(b*10));
return 0;
}
모두 2.1이라는 값이 나와야 하지만 float 변수의 경우 2.0이라는 황당한 값이
gcc 2.95.3 - 3.0 에서 동일하게 나옵니다. double은 괜챦고요.
가장 간단한 gcc의 버그를 확인할 수 있는 방법인 듯하고, 전에 언젠가 실렸던
gcc에 관한 글도 나오는 숫자의 안정성 면에서 문제가 있다고 본 것 같습니다.
제 생각에는 아직 gcc 3.0으로 올리는 것은 그리 좋지 않은 듯 합니다.
좋은 하루되시길 빕니다.--내 서명???