정수화 함수는
정수화 함수는 실수형 데이터에서 정수부만을 취하는, 즉 소수점 이하의 소수부를 잘라 버리는 함수이다. 소수부를 잘라 버린다고 해서 계산 결과가 정수가 되는 것은 아니며 리턴값은 여전히 실수이다. 실수값의 소수부만을 0으로 만든다고 생각하면 된다. 정수화 함수에는 다음 두 가지가 있다.
double floor( double x );
double ceil( double x );
두 함수는 소수점 이하를 자르는 방식이 다른데 floor는 소수점 이하를 버리고 정수부만을 취하고 ceil은 소수점 이하를 올림해서 정수부를 1증가시킨다. 다음 호출 예를 보면 쉽게 이해가 될 것이다.
floor(3.14); // 결과는 3.0
ceil(3.14) // 결과는 4.0
floor는 내림을 하는 함수이고 ceil은 올림을 하는 함수라고 일단 정리할 수 있다. 그러나 단순히 내림, 올림으로 이 두 함수의 동작을 정의하는 것은 정확하지 않다. 다음 예를 보자.
floor(-3.14); // 결과는 -4.0
ceil(-3.14) // 결과는 -3.0
결과가 조금 이상해 보이는데 인수가 음수일 때 floor는 정수부가 1 감소하며 ceil은 소수부를 버린다. 왜 그런가 하면 음수에서도 버림에 의해 수가 더 작아져야 하고 올림에 의해 수가 더 커져야 하기 때문이다. 그래서 floor, ceil 함수의 동작을 좀 더 일반적으로 표현하면 다음과 같다.
▶ floor : 주어진 인수보다 크지 않은 최대 정수
▶ ceil : 주어진 인수보다 작지 않은 최소 정수
'C & C++ 관련' 카테고리의 다른 글
확장열(Escape Sequence) (0) | 2007.03.14 |
---|---|
반올림함수 (0) | 2007.03.14 |
아스키코드표 (0) | 2007.03.14 |