2010. 5. 11. 23:28
C++에서 제공해주지 않는 반올림 함수를 만들어보자~
1.첫번째
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.두번째
double Round(double x, int n)
{
int i; // 자릿수맞춤
for ( i = 0; i < n; ++i )
x *= 10;
if ( x - (int)x >= 0.5 )
// 소수점이하부분이0.5보다크거나같으면올림
x = ceil(x);
else // 작으면버림
x = floor(x);
// 자릿수복구
for ( i = 0; i < n; ++i )
x /= 10;