modf, modff, modfl - extract signed integral and fractional values from floating-point number

Math library (`libm`

, `-lm`

)

```
#include <math.h>
double modf(double x, double *iptr);
float modff(float x, float *iptr);
long double modfl(long double x, long double *iptr);
```

Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

These functions break the argument `x`

into an integral part
and a fractional part, each of which has the same sign as `x`

.
The integral part is stored in the location pointed to by
`iptr`

.

These functions return the fractional part of `x`

.

If `x`

is a NaN, a NaN is returned, and `*iptr`

is set
to a NaN.

If `x`

is positive infinity (negative infinity), +0 (-0) is
returned, and `*iptr`

is set to positive infinity (negative
infinity).

No errors occur.

For an explanation of the terms used in this section, see attributes(7).

Interface | Attribute | Value |

Thread safety | MT-Safe |

C11, POSIX.1-2008.

C99, POSIX.1-2001.

The variant returning `double`

also conforms to SVr4, 4.3BSD,
C89.