1500 characters remaining
 Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.

modf, modff

Visual Studio 2005

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, Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003

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`

.NET Framework Equivalent

Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.