Reference
C Library
IOstream Library
Strings library
STL Containers
STL Algorithms
Miscellaneous
C Library
cassert (assert.h)
cctype (ctype.h)
cerrno (errno.h)
cfloat (float.h)
ciso646 (iso646.h)
climits (limits.h)
clocale (locale.h)
cmath (math.h)
csetjmp (setjmp.h)
csignal (signal.h)
cstdarg (stdarg.h)
cstddef (stddef.h)
cstdio (stdio.h)
cstdlib (stdlib.h)
cstring (string.h)
ctime (time.h)
cmath (math.h)
functions:
abs
acos
asin
atan
atan2
ceil
cos
cosh
exp
fabs
floor
fmod
frexp
ldexp
log
log10
modf
pow
sin
sinh
sqrt
tan
tanh
macro constants:
HUGE_VAL


modf

function
<cmath>
     double modf (      double x,      double * intpart );
long double modf ( long double x, long double * intpart );
      float modf (       float x,       float * intpart );

Break into fractional and integral parts

Breaks x into two parts: the integer part (stored in the object pointed by intpart) and the fractional part (returned by the function).

Each part has the same sign as x.

Parameters

x
Floating point value.
intpart
Pointer to an object where the integral part is to be stored.

Return Value

The fractional part of x, with the same sign.

Portability

In C, only the double version of this function exists with this name.

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
/* modf example */
#include <stdio.h>
#include <math.h>
int main ()
{
  double param, fractpart, intpart;
  param = 3.14159265;
  fractpart = modf (param , &intpart);
  printf ("%lf = %lf + %lf \n", param, intpart, fractpart);
  return 0;
}


Output:

3.141593 = 3.000000 + 0.141593

See also