• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

알고리즘 과정

20.03.05 03:22 작성 조회수 172

0

안녕하세요! 

제가 이 문제를 강의를 듣기 전 먼저 코딩을 시도했었는데요, 잘 풀리지 않았습니다.

선생님께서는 

a=a*10;

a=a+0.5;

a=(int)a;

a=a/10;

printf("%f\n",a); 의 과정을 진행해주셨는데,

저는 처음부터 a*10 을 할 생각을 전혀 하지 못했습니다. 어떤 이유에서 a*10을 먼저 해야 하는건지, 후에는 왜 a/10을 해야하는지 다시 한번 설명해주시면 감사하겠습니다! 

답변 1

답변을 작성해보세요.

0

a=a*10을 한 이유는 실수이 소숫점을 한 자리 뒤로 옮겨 소수 둘 째 자리가 첫째 자리로 오게 하기 위해 하는 것입니다.

그 다음 0.5를 더해서 둘짜자리에서 반올림이 일어나는지 확인하는 것입니다.

a=a/10은 소숫점을 한자리 앞으로 옮겨 원래 위치로 복귀하기 위해서 입니다.

a값을 23.57 로 놓고 직접 과정을 해보세요. 그러면 이해가 갈겁니다.