소프트웨어/C++

[2004년 기말 14번] 반올림 출력 - fabs 함수

카켈 2007. 3. 5. 01:46




목적
  - 반올림을 수학적으로 이해하고 C 에다가 적용시킨다.

문제

코드

#include <iostream>
#include <cmath>
#include <ctype.h>

using namespace std;

int main(void)
{
 double dIn, dPoint;
 dIn = 1.0;
 dPoint = 0.0;
 long lNat = 0;
 
 while(dIn != 0)
 {
   cout << "실수값을 하나 입력하세요 : ";
   cin >> dIn;

  if(dIn != 0)
  {

   lNat = dIn < 0 ? -fabs(dIn) : fabs(dIn);
   dPoint = dIn - lNat;
   
   cout << dIn << "의 반올림값 : ";
   if(fabs(dPoint) >= 0.5)
    (lNat = dIn < 0 ? lNat - 1 : lNat + 1);

   cout << lNat << endl;
 
  }
 }

 return 0;
}

해설
  - fabs() 함수는 절대값을 구하되 소숫점 까지 받아서 출력할수 있습니다.
  - 부호를 비교해서 0 보다 작을때 음의 부호를 계산할때 -1을 하여 반올림 할수 있습니다.
  - 0.5 보다 크거나 같으면 음일때는 -1 양일때는 +1 을 하며 계산후 소숫점아래는 버립니다.
  - 0 이 되면 판정을 하지 안하고 종료하게 했습니다.

참고

  - 유사 문제