[math.h] modf, modff, modfl 함수 예제 코드, 실수 값을 정수 부분과 소수점 부분으로 분할
//C언어 표준 라이브러리 함수 가이드
//double modf(double value, double *iptr); 실수 값을 정수 부분과 소수점 부분으로 분할
//float modff(float value, float *iptr); 실수 값을 정수 부분과 소수점 부분으로 분할
//long double modfl(long double value, long double *iptr); 실수 값을 정수 부분과 소수점 부분으로 분할
//실수의 정수 부분과 소수점 부분으로 분할하여 출력
#include <math.h>
#include <stdio.h>
int main(void)
{
double value, ipart, fpart;
float ipartf, fpartf;
long double ipartl, fpartl;
value = 3.14;
fpart = modf(value, &ipart);
printf("%f의 정수부:%.f 실수부:%f\n", value, ipart, fpart);
value = 2.1;
fpart = modf(value, &ipart);
printf("modf 함수: %f의 정수부:%.f 실수부:%.30f\n", value, ipart, fpart);
fpartf = modff((float)value, &ipartf);
printf("modff 함수: %f의 정수부:%.f 실수부:%.30f\n", value, ipartf, fpartf);
fpartl = modfl(value, &ipartl);
printf("modfl 함수:%f의 정수부:%.f 실수부:%.30f\n", value, ipartl, fpartl);
return 0;
}
출력
3.140000의 정수부:3 실수부:0.140000
modf 함수: 2.100000의 정수부:2 실수부:0.100000000000000088817841970013
modff 함수: 2.100000의 정수부:2 실수부:0.099999904632568359375000000000
modfl 함수:2.100000의 정수부:2 실수부:0.100000000000000088817841970013
* 여기에서는 Microsoft Visual Studio 2015에서 실행한 결과입니다.
Microsoft Visual Studio 2010에서는 modff 함수를 사용하였을 때 버그가 있습니다.
프로그래밍 언어 및 기술 학습, 무료 동영상 강의 언제나 휴일 티스토리
'C언어 > C언어 예제' 카테고리의 다른 글
[math.h] hypot, hypotf, hypotl 함수 사용 예제 코드, 직각 삼각형의 빗변의 길이 계산 (0) | 2016.05.09 |
---|---|
[math.h] frexp, frexpf, frexpl 함수 사용 예제 코드 , 지수와 가수 계산 (0) | 2016.05.09 |
[math.h] log, logf, logl 함수 예제 코드, log 계산 (0) | 2016.05.08 |
[math.h] ldexp, ldexpf, ldexpl 함수 예제 코드, x*2^exp 계산 (0) | 2016.05.08 |
[math.h] log1p, log1pf, log1pl 함수 예제 코드, 자연 로그(x-1) (0) | 2016.05.08 |