double과 float
슬아라
double을 사용하다가 문제가 생겨서 이래저래 실험해봤는데요
#includestdio.h
int main(){ int i; double f;
printf(f : ); scanf(%f,&f);
printf(f=%f\n,f);
}
이렇게 작성했을 때 어떤 값을 입력받아도 f값이 0.000000 으로 출력됩니다. 그리고 double위 int선언을 지우면 다른 오류값이 출력되네요. 하지만 float을 사용하면 값이 정상적으로 나오구요.또, float을 사용해서 예를 들어 123.23을 입력받으면 123.230003 으로 출력되고, 123.99를 입력하면 123.989998 로 출력됩니다. 이런 오류가 커지면 프로그램에 문제를 일으키지 않나요?
#includestdio.h
int main(){ int i; float f;
printf(f : ); scanf(%f,&f);
i=(f*100)-(int)f*100;
printf(i=%d\n,i); printf(f=%f\n,f);
}
이것처럼 간단하게 소수점 2자리만을 출력할 수 있는 프로그램을 만들었을 때, 12.23을 입력하면 출력값이 22가 되고, 12.99를 입력받으면 98이 되어버립니다.어떤 문제가 있는것이죠?;
오늘따라 질문이 많네요...;
-
봄해
설명 좋네요 ^^
-
세여닝
우와~ 수다님의 자세한 설명!! 짱짱~
-
루리
와...좋은 정보 감사합니다!
-
큰힘
아직 초짜라 그냥 보고만 갑니다. ㅎㅎ
-
맑은누리
double을 입력 및 출력하는 포맷은 %f가 아니라 %lf로 알고있습니다
그리고 정확한 값 여부는 부동소숫점에 대해서 찾아보시면 도움이 될꺼같아요
제가아는건 여기까지 ㅎㅎ