인프런 커뮤니티 질문&답변
숙제질문과 강의 내용 질문이 있습니다.
작성
·
180
0
안녕하세요.
매일매일 재밌게 강의 듣고 있습니다.
이번 강의 보다가 질문이 있어서 글 올립니다.
include
include
include
int main()
{
using namespace std;
//16:40쯔음 unsigned int 최댓값 하려고 하니 숫자가 깨져서(?) 4.29497e+09 라고 나오는데 뭐가 문젠지 잘 모르겠어요.cout << "size of unsigned int is " << sizeof(unsigned int) << endl;
cout << "maximum of unsigned int is " << pow(2, sizeof(unsigned int) * 8) - 1 << endl; // 4.29497e+09
cout << numeric_limits<unsigned int>::max() << endl; // 4294967295
// 21:00쯔음 (float) 22 / 4 로 해서 5.5가 나오게 보여주셨는데 float(22 / 4)로 하면 5라고 나오는데 차이점이 무엇인가요?
cout << (float) 22 / 4 << endl;
cout << float(22 / 4) << endl;
return 0;
}
답변 1
0
안녕하세요! 매일 공부하신다니 대단하시네요. 숫자가 깨져나오는 것이 아니라 정밀도 표현 옵션 차이입니다. 제대로 나오는 것이니 걱정하지 마세요. 옵션 조절 방법은 뒤에 나옵니다. 혹시 조금 더 궁금하시다면 유튜브의 따배씨 재생목록 중 질문 영상에 조절 방법이 슬쩍 나옵키다. 22나누기 5는 22나누기5가 정수 나누기일 경우와 실수로 바뀐 후 나누기 차이입니다. 정수 나누기일 때는 소수점 이하는 버림입니다. 이건 기억해 두시고 아직도 애매하시더라도 조금 더 생각해보시라고 더 자세한 내용은 생략하겠습니다. 아마 강의 내용에서 설명 드리긴 했을텐대 처음에는 생소해서 놓치는 것이 당연합니다. 중요한 점들을 정확하게 발견하시는 것을 보면 제대로 공부하고 계신 것 같습니다. 어려운 지점을 계속 몇 번 만나게 되실텐데 끈기있게 공부해나가시면 원하는 실력을 얻으실겁니다.





