언어 자료구조 알고리즘/C11 표준 라이브러리 함수

MODF, MODFF, MODFL

언제나휴일 2016. 1. 3. 16:18
반응형

double modf(double value, double *iptr); 실수 값을 정수 부분과 소수점 부분으로 분할

float modff(float value, float *iptr); 실수 값을 정수 부분과 소수점 부분으로 분할

long double modfl(long double value, long double *iptr); 실수 값을 정수 부분과 소수점 부분으로 분할

입력 매개 변수 리스트

value 실수

iptr value의 정수 부분의 값을 설정할 메모리 주소

반환 값

value의 소수점 부분

사용 예

//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 함수를 사용하였을 때 버그가 있습니다.

반응형

'언어 자료구조 알고리즘 > C11 표준 라이브러리 함수' 카테고리의 다른 글

FMOD, FMODF, FMODL  (0) 2016.01.03
CEIL, CEILF, CEILL  (0) 2016.01.03
POW, POWF, POWL  (0) 2016.01.03
HYPOT, HYPOTF, HYPOTL  (0) 2016.01.03
FREXP, FREXPF, FREXPL  (0) 2016.01.03
LOG, LOGF, LOGL  (0) 2016.01.03
LDEXP, LDEXPF, LDEXPL  (0) 2016.01.03
LOG1P, LOG1PF, LOG1PL  (0) 2016.01.03
TAN, TANF, TANL  (0) 2016.01.03
SIN, SINF, SINL  (0) 2016.01.03