modf() 함수는 전달받은 실수(인자)를 정수부와 소수부로 분리하는 데 사용되는 수학 함수입니다. 이 함수는 수학 관련 연산을 위해 math.h 헤더 파일에 선언되어 있으며, 호출 결과로 전달된 인자의 소수부 값을 반환하고, 정수부는 포인터를 통해 별도로 저장됩니다.
modf() 함수의 구문
C 언어에서 modf() 함수의 기본 구문은 다음과 같습니다.
double modf(double value, double *integral_pointer);
각 매개변수의 의미는 다음과 같습니다.
- value − 정수부와 소수부로 분리할 실수 값입니다.
- integral_pointer − 분리된 후의 정수부를 저장할 double형 변수를 가리키는 포인터입니다.
함수가 반환하는 값은 입력값의 소수부이며, 반환 타입은 double입니다. 참고로 정수부와 소수부 모두 원래 입력값과 동일한 부호를 가집니다.
modf() 함수 예제
다음은 C 언어에서 modf() 함수를 사용하는 예제 코드입니다.
#include<stdio.h>
#include<math.h>
int main () {
double val, x, res;
val = 28.856;
res = modf(val, &x);
printf("Integral part of val : %lf\n", x);
printf("Fraction Part of val : %lf \n", res);
return(0);
}
실행 결과
Integral part of val : 28.000000 Fraction Part of val : 0.856000
코드 설명
위 프로그램에서 modf() 함수는 부동소수점 숫자 28.856을 정수부와 소수부로 분리합니다. 먼저 val, x, res 세 개의 double형 변수가 선언되고, val에는 분리 대상이 되는 실수 값이 저장됩니다.
그다음 다음과 같이 modf() 함수를 호출합니다.
res = modf(val, &x);
이 호출이 실행되면 val의 정수부인 28.000000은 포인터를 통해 변수 x에 저장되고, 소수부인 0.856000은 함수의 반환값으로 변수 res에 저장됩니다. 마지막으로 printf() 함수를 사용해 두 값을 각각 출력하면 위와 같은 결과를 확인할 수 있습니다.