Develop
2003.04.23 11:14

[c] 반올림 함수!! ㅋㅋ

조회 수 8143 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
## 반올림 함수 1 ##
#include <math.h>

/* 반올림을 해주는 함수,음수일 경우 반내림을 한다. */
double round(double x){
    return ((x>0) ? floor(x+.5) : ceil(x-.5));
}

(설명)
C에는 특별히 반올림을 해주는 함수가 없다.
그러나 아주 간단하게 반올림을 할 수 있는 방법이 있다.
즉, x가 양수인 경우에 floor(x+0.5) 라고 해주면 반올림이 저절로 된다.
그러나 음수에서는 반내림(-1.9 => -2.0)을 하는 것이 오히려 상식적이므로 반올림을 하는 함수를 새로 제작.
ceil()은 올림을 하는 함수이고, floor()는 내림을 하는 함수이다. 
단순히 return floor(x+.5) 또는 return (double)(int)(x+.5) 라고 하면 양수일 때만 원하는 결과를 가져온다. 
반드시 math.h를 include 해주어야 한다. 


## 반올림 함수 2 ##
#include <math.h>

/* 소수점 아래자리에서도 반올림 해주는 함수 */
/* a-반올림 할 수, b-반올림할 소수점 자리  */
double round2(double a, int b){
    a*=pow10(b-1);
    a=(a>0) ?  floor(a+0.5) : ceil(a-0.5);
    a*=pow10(-(b-1));
    return a;
}

(설명) 
앞서의 round() 함수는 소수점 아래자리에서는 반올림할 수가 없었다. 
이것을 pow10() 함수를 써서 매개변수에 소수점 정보를 추가한 것이다. 
그래서 b를 그 소수점 정보로 하여 원하는 위치로 10의 배수를 곱하여, 첫째자리에서 반올림을 한후 다시 원상복귀시킨 것이다. 

ex) p = round2(3.141592, 3);    =>    p에는 3.140000 이 저장된다.

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
841 Develop 프로그램 문서 관리 (Doxygen) hooni 2013.04.23 16439
840 Develop 프로그래밍에서 foo, bar 함수의 유래 file hooni 2013.06.25 21477
839 Develop 프로그래밍 소스 관련 사이트.. hooni 2013.04.23 16527
838 Develop 페이팔에서 돈 찾기 (Paypal withdraw) file hooni 2014.02.20 11481
837 Develop 캘리포니아 운전면허 족보 file hooni 2017.06.12 890
836 Develop 최근 논문 자료 (2011/01/03, 만현형한테 보낸거..) secret hooni 2013.04.23 10366
835 Develop 참고하고 지울 자료.. 집에서 바야지.. ㅋㅋ file hooni 2013.04.23 12177
834 Develop 정리할 자료. file hooni 2015.07.02 824
833 Develop 자주 쓰는 Docker 명령어 alias hooni 2020.01.10 272241
832 Develop 이어서 작업할 내용~ secret hooni 2013.11.21 0
831 Develop 웹페이지 성능 테스트 툴 설명 hooni 2013.04.23 27522
830 Develop 알고리즘 성능분석 file hooni 2014.06.24 3106
829 Develop 알고리즘 성능 분석 기준 hooni 2014.06.24 2914
828 Develop 아이 훌레시 작업중 ㅋㅋ secret hooni 2013.08.09 0
827 Develop 서기의 PHP 동영상 강의(싱싱해) hooni 2013.05.15 31044
826 Develop 사이버보안실무 수업 메모 secret hooni 2017.03.23 0
Board Pagination Prev 1 2 3 4 5 ... 53 Next
/ 53