2014.08.16 07:45

윤택이 반올림

조회 수 367 추천 수 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 571
공지 키보드 화살표값 출력 좋은아빠되기 2016.11.19 1350
공지 원하는 좌표에 값 출력하기 좋은아빠되기 2016.11.19 2664
공지 Python(파이썬) 학습 자료 PDF 1 file 좋은아빠되기 2014.12.10 10730
공지 dev C++ 텍스트 색상변경 WinApi사용(textcolor 대용) 좋은아빠되기 2014.06.07 4991
공지 DEV-C++ 기본 코드 좋은아빠되기 2013.06.19 8614
공지 무료 C++ 컴파일러(윈도우용) DEV-C++ 좋은아빠되기 2013.06.18 19241
공지 이클립스 C++ 설치 파일들 좋은아빠되기 2013.06.18 38134
270 원 반지름 구하기 선우 2016.07.02 481
269 세개의 실수를 받아 큰수는 올림 작은수는 버림 남은수는 반올림하기 선우 2016.07.02 201
268 함수2 자가진단7 선우 2016.07.09 162
267 작은수 두배 큰수 절반 함수(승민) 승민 2016.07.16 89
266 10이하 숫자 두개작은수 부터 큰수까지 곱셈식(승민) 승민 2016.07.16 209
265 스태틱함수(승민) 승민 2016.07.16 129
264 입력숫자사각형 만들기(승민)+줄간격맞추기 승민 2016.07.16 1075
263 숙제 함수1 형성평가5(승민) 승민 2016.07.16 147
262 분수쇼 (승민) 승민 2016.07.23 154
261 중간 기말 점수 더하기 평균 등수, 평균/5해서 별개수(승민) 승민 2016.07.23 432
260 함수(승민) 승민 2016.08.06 118
259 원의반지름 구하기(승민) 승민 2016.08.06 411
258 원반지름구하기 2(승민) 승민 2016.08.06 224
257 큰수작은수 나머지수 출력하기(승민) 승민 2016.08.06 248
256 숫자 3개 입력후 더할수잇는수 다더한 과정(승민) 승민 2016.08.13 140
255 제곱근 구하고 그사이 숫자 구하기(승민) 승민 2016.08.13 283
254 절대값 더하기(승민) 승민 2016.08.13 341
253 2의 입력한수 만큼 제곱(승민) 승민 2016.08.13 384
252 원의 반지름을 입력받고 원의 넓이구하기(승민) 승민 2016.08.13 3335
251 주사위 세번떤져서 나오는 경우의수(승민) 승민 2016.08.13 1162
Board Pagination Prev 1 ... 8 9 10 11 12 13 14 15 16 17 ... 26 Next
/ 26