책 내용 질문하기
실수형 변수 출력할때 질문입니다
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
507
조회수
1961
작성일
2019-03-08
작성자
탈퇴*원
첨부파일
float a=123456789.0e-5f ;
System.out.printf(“%f, %e\n”, a,a);
이면
1234.567890, 1.234568e+03
아닌가요??
답안에는
1234.567871, 1.234568e+03이던데
실수형 표현에서 왜 왜곡이 일어난 건가요
답변
2019-03-11 10:10:12
안녕하세요. 길벗수험서 운영팀입니다.
float a = 123456789.0e-5f;
%f, %e와 같이 소수점 자리수가 없는 경우에는 기본적으로 소수점 자리수가 6자리가 표시됩니다.
그러므로 %f로 출력하면 1234.567890으로 표시되어야 하는데, 지수를 실수로 표현할 때 부족한 자리수 변환 시 정규화 과정의 오차로 인해 예상과 다른 값이 표시됩니다.
이로 인해 예상과 다른 결과가 표시되도록 자리수가 부족한 표현은 시험에 출제되지 않을 것으로 예상됩니다. 그러니 적용 원리에 맞는 형태만 파악해 두세요.
행복한 하루되세요.^^
-
관리자2019-03-11 10:10:12
안녕하세요. 길벗수험서 운영팀입니다.
float a = 123456789.0e-5f;
%f, %e와 같이 소수점 자리수가 없는 경우에는 기본적으로 소수점 자리수가 6자리가 표시됩니다.
그러므로 %f로 출력하면 1234.567890으로 표시되어야 하는데, 지수를 실수로 표현할 때 부족한 자리수 변환 시 정규화 과정의 오차로 인해 예상과 다른 값이 표시됩니다.
이로 인해 예상과 다른 결과가 표시되도록 자리수가 부족한 표현은 시험에 출제되지 않을 것으로 예상됩니다. 그러니 적용 원리에 맞는 형태만 파악해 두세요.
행복한 하루되세요.^^