티스토리 뷰

Developer/C & C++

[C] c에서 반올림 하는 방법

데브포유 2008. 9. 10. 08:51
반응형
C에서는 반올림하는 함수가 없죠.
 
ceil과 floor 함수가 있는데 ceil은 무조건 소수점 이하는 버리고 1를 더해 주는것이고, floor는 무조건 소수점 이하를 버리는 거죠. 아래와 같이 함수를 이용하는 방법과 매크로를 이용하는 방법을 소개해 드립니다.

1. 함수를 이용하는 방법
/*
@description : c언어에서 반올림를 구현한 함수
@param value: 반올림하고자 하는 실수값
@param pos  : 반올림하고자 하는 소수점 자리수
@return: 반올림이 적용된 수
*/
double round( double value, int pos )
{
     double temp;
     temp = value * pow( 10, pos );  // 원하는 소수점 자리수만큼 10의 누승을 함
     temp = floor( temp + 0.5 );          // 0.5를 더한후 버림하면 반올림이 됨
     temp *= pow( 10, -pos );           // 다시 원래 소수점 자리수로
 
     return temp;
}

2. 매크로를 이용하는 방법
#define round(x) (long)floor(x+0.5555555555)
반응형