해결된 질문
작성
·
159
0
안녕하세요 선생님
다름이 아니라 수업시간에 정수 숫자를 하나 입력받아서 처음에는 3으로 나누고 출력 다음 줄은 double형식으로 변환해서 3으로 나누어 출력하는것은 error 없어 출력이 잘되는데요
아래와 같이 정수를 입력받아 double형식으로 변환 후 정수와 나머지를 계산하면 오류가 뜨던데
이것은 실수형식과 정수형식을 나눠서 나머지를 구하면 너무나 많은 나머지의 소수점 자리수가 나와서 출력이 안되는 것인가요?
(double)x/3는 출력이 잘되고 (double)x%3은 실행이 안되는 이유가 궁금합니다.
답변 1
0
(double)x / 3의 연산결과는 double형 실수 입니다. 그럼에도 %d형식으로 출력하겠다면 할 수는 있습니다. 다만 값이 기대하는 것과 다를 것입니다. 이를 출력이 잘 된다고 할 수는 없겠습니다. 심지어 컴파일 타임에 경고도 나기 때문입니다.
그리고 (double)x % 3 연산이 컴파일 오류를 일으키는 이유는 간단합니다. 나머지 연산자의 피연산자는 모두 정수라야 하기 때문입니다. 이는 문법적인 강제사항입니다. 컴파일 오류가 발생하면 다음 단계로 넘어가지 못하고 실행파일 빌드에 최종 실패합니다. 따라서 실행이 불가하겠습니다. 참고하시기 바랍니다. 😄