2014.08.16 07:45

윤택이 반올림

조회 수 366 추천 수 0 댓글 0

반올림이 안되던데???


아래 주석으로 실제 나와야할 결과값을 적어 놨으니깐.


그렇게 나오도록 고치숑


ㅅㄱ


#include <Stdio.h>
#include <stdlib.h>

void rou(double num, int n)
{     
       n=n+1;
      
       double m, x;
       int i, h=1;
      
       if(n>=0)
       {
                x=num-(int)num;//소수 부분  0.56489
      
                for(i=0; i<n; i++)
                {
                         h=h*10;//100
                }
      
                 m=x*h;//564.89
      
                 if((int)m%10>=5)
                 {
                                 m=m+10-((int)m%10);
                 }
      
                 else
                 {
                                 m=m-((int)m%10);   
                 }
                 m=(int)m/(double)h;
      
                 printf("%lf \n", (int)num+m);
       }
                     
       else// n<0
       {
                      n=-n;//1   140.000
                     
                      x=(int)num;//143.000
                     
                      for(i=0; i<n; i++)
                      {
                                h=h*10;//10
                      }
                     
                      if((int)x%h>=5*(h/10))
                      {
                                       m=(x+h)-((int)x%h);
                                       printf("%lf \n", m);
                      }
                     
                      else
                      {
                                       m=x-((int)x%h);
                                       printf("%lf \n", m);            
                      }
       
        }  
}

int main(void)
{
    double num=123.54589;
   
    //버림이 일어 나는 부분
    rou(154.556, -1);// 정상적인 결과치 150.000
    rou(143.446, 0);//  정상적인 결과치 143.000
    rou(153.546, 1);// 정상적인 결과치 153.500
   
   
    //올림(반올림)이 일어나야 할 부분
    rou(155.556, -1);// 정상적인 결과치 160.000
    rou(143.546, 0);//  정상적인 결과치 144.000
    rou(153.556, 1);// 정상적인 결과치 153.600

   
   
 
    system("pause");
    return 0;
}



List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 글쓰기는 하루 5개, 댓글은 10개만 가능합니다. 좋은아빠되기 2019.02.15 568
공지 키보드 화살표값 출력 좋은아빠되기 2016.11.19 1343
공지 원하는 좌표에 값 출력하기 좋은아빠되기 2016.11.19 2652
공지 Python(파이썬) 학습 자료 PDF 1 file 좋은아빠되기 2014.12.10 10706
공지 dev C++ 텍스트 색상변경 WinApi사용(textcolor 대용) 좋은아빠되기 2014.06.07 4987
공지 DEV-C++ 기본 코드 좋은아빠되기 2013.06.19 8596
공지 무료 C++ 컴파일러(윈도우용) DEV-C++ 좋은아빠되기 2013.06.18 19233
공지 이클립스 C++ 설치 파일들 좋은아빠되기 2013.06.18 38129
270 10/29문자열 선우 2016.10.29 126
269 대덕마고 승민 2016.10.29 169
268 오른쪽으로돌려쓰기 선우 2016.10.29 155
267 포인트 승민 2016.09.10 203
266 세자리수 곱해서 각자리수 곱하기(승민) 승민 2016.08.27 1276
265 주사위(승민) 승민 2016.08.20 179
264 n개수의 주사위 돌리기(승민) 승민 2016.08.20 453
263 홀수면 n수까지 홀수 출력 짝수면 n수까지 짝수 출력(승민) 승민 2016.08.20 465
262 n자리수 각자리수 제곱해서 더하기(승민) 승민 2016.08.20 889
261 n/2 n-1 더해서 배열에넣고 원하는 수 빼기(승민) 승민 2016.08.20 132
260 주사위 세번떤져서 나오는 경우의수(승민) 승민 2016.08.13 1161
259 원의 반지름을 입력받고 원의 넓이구하기(승민) 승민 2016.08.13 3335
258 2의 입력한수 만큼 제곱(승민) 승민 2016.08.13 380
257 절대값 더하기(승민) 승민 2016.08.13 341
256 제곱근 구하고 그사이 숫자 구하기(승민) 승민 2016.08.13 282
255 숫자 3개 입력후 더할수잇는수 다더한 과정(승민) 승민 2016.08.13 140
254 큰수작은수 나머지수 출력하기(승민) 승민 2016.08.06 247
253 원반지름구하기 2(승민) 승민 2016.08.06 223
252 원의반지름 구하기(승민) 승민 2016.08.06 411
251 함수(승민) 승민 2016.08.06 118
Board Pagination Prev 1 ... 8 9 10 11 12 13 14 15 16 17 ... 26 Next
/ 26