소프트웨어/C++

[2003년 기말 12번] 반올림 값 출력 - 형변환

카켈 2007. 2. 24. 07:43



목적
  - 반올림을 C에 적용 시키고 이해한다.

문제


풀이

#include <iostream>

using namespace std;

int main(void)
{
 float fIn = 0;

 while(1)
 {
  cout << "실수값 하나를 입력하세요 : ";
  cin >> fIn;
 
  if(fIn == 0) break;
  cout << fIn << " 의 반올림한 값은 " <<
   ((fIn - (int)fIn) >= 0.5 ? (int)fIn + 1 : (int)fIn) << " 입니다." << endl << endl;

 
 }

 return 0;
}

해설
  - 실수형 자료를 정수형 변환(캐스팅)을 하면 소숫점이 지워 집니다. 이를 이용하여 차를 구해 0.5 이상이면 정수형 변환한 값에다가 1을 더한 값을 아니면 변환된 값만 출력합니다.
 - while 문으로 무한 반복을 수행하다가 0 이 입력되면 break 로 탈출하여 종료 합니다.

참고
  - 유사 문제 : 형변환 활용