더북(TheBook)

그 이유는 정수를 담을 수 있는 상자인 height를 만들었는데 정수가 아닌 실수 185.7을 담으려 했기 때문입니다. 따라서 0.7은 들어오지 못하고, 소수점 이하 자리는 잘리고 185까지만 출력된 것입니다. 이 문제를 해결하려면 height 변수에 실수를 담을 수 있는 자료형을 선언해야 오류가 없어질 것입니다.

실수 자료형은 floatdouble을 사용합니다. float 자료형은 4바이트 크기의 메모리를 사용하고 double 자료형은 말 그대로 두 배인 8바이트 크기의 메모리를 사용하여 실수를 저장합니다. 그러므로 double이라고 자료형을 사용하면 float보다 두 배 큰 값의 실수를 저장할 수 있습니다.

double height = 185.7;  // 실수 자료형인 double로 수정

이처럼 실수 자료형 double을 사용하여 선언과 동시에 초기화하고 다시 한번 프로그램을 수행해 볼까요?

실행 결과

우진이 키는 1610612736cm입니다.

정수 자료형 int를 실수 자료형 double로 올바르게 바꿨는데도 결과가 185.7이 아닌 이상한 값이 나왔네요! 이 오류의 원인은 서식 지정자를 잘못 사용하였기 때문입니다. 실수 변수에 해당하는 서식 지정자는 %f입니다. 서식 지정자를 %d가 아닌 %f로 수정해서 프로그램을 실행하면 결과가 제대로 나올 것입니다. 보통 float 자료형은 형식 지정자 %f를 사용하고, double 자료형은 %lf를 사용합니다. lf는 long f loat의 약자입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.