This documentation is archived and is not being maintained.

# modf, modff

Visual Studio .NET 2003

Splits a floating-point value into fractional and integer parts.

```double modf(
double x,
double *intptr
);
float modf(
float x,
float *intptr
);  // C++ only
long double modf(
long double x,
long double * intptr
);  // C++ only
float modff(
float x,
float *intptr
);
```

#### Parameters

x
Floating-point value.
intptr
Pointer to stored integer portion.

#### Return Value

This function returns the signed fractional portion of x. There is no error return.

#### Remarks

The modf function breaks down the floating-point value x into fractional and integer parts, each of which has the same sign as x. The signed fractional portion of x is returned. The integer portion is stored as a floating-point value at intptr.

modf has an implementation that uses Streaming SIMD Extensions 2 (SSE2). See _set_SSE2_enable for information and restrictions on using the SSE2 implementation.

C++ allows overloading, so you can call overloads of modf. In a C program, modf always takes two double values and returns a double value.

#### Requirements

modf, modff <math.h> ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP

For additional compatibility information, see Compatibility in the Introduction.

Libraries

All versions of the C run-time libraries.

#### Example

```// crt_modf.c

#include <math.h>
#include <stdio.h>

int main( void )
{
double x, y, n;

x = -14.87654321;      /* Divide x into its fractional */
y = modf( x, &n );     /* and integer parts            */

printf( "For %f, the fraction is %f and the integer is %.f\n",
x, y, n );
}
```

#### Output

```For -14.876543, the fraction is -0.876543 and the integer is -14
```