심사문제 8.10
, 김 유성님이 작성답이
float num1 = 1.8f;
long num2 = 2.9;
이거아닌가요?
아니라면 정답과 해설좀 부탁드립니다
그냥해설은 이해가 잘안가네요
Re: 심사문제 8.10
, 도장_ 관리자님이 작성해설long은 long int의 생략이고, 정수형입니다. 정수형에 실수 2.9는 담을 수 없습니다.
변수 num3은 이미 선언되어 있으므로 num1과 num2만 선언하면 됩니다. 따라서 num1에는 1.8과 num2에는 2.9를 저장해주면 됩니다. 이때 자료형 크기까지 만족하려면 num1은 float, num2는 double이 되어야 합니다.
해설에 정답이 대부분 쓰여 있습니다. 해설의 문장을 보고 코드를 구성하면서 코딩 연습을 하도록 의도되어 있습니다.
num1은 float, num2는 double이 되어야 합니다.해설에 자료형도 명확하게 쓰여 있습니다. 왜 나는 long을 선택했지?를 먼저 고민해야 할 것 같습니다.
표 7-1와 표 8-1을 찬찬히 비교해보세요. long int에서 int를 생략해서 long을 쓸 수 있지만, long double에서 double을 생략하면 long이 int를 생략한 것인지, double을 생략한 것인지 컴파일러는 알 수 없습니다. 따라서 기본값인 int 생략으로 처리합니다.
해설이 이해가 안 될 때는 해당 단원을 처음부터 복습할 것을 권합니다.