# std::modf

 Defined in header float       modf( float x, float* iptr ); double      modf( double x, double* iptr ); long double modf( long double x, long double* iptr );

Decomposes given floating point value `x` into integral and fractional parts, each having the same type and sign as `x`. The integral part (in floating-point format) is stored in the object pointed to by `iptr`.

## Contents

### Parameters

 arg - floating point value iptr - pointer to floating point value to store the integral part to

### Return value

The fractional part of `x` with the same sign as `x`. The integral part is put into the value pointed to by `iptr`.

### Example

```#include <iostream>
#include <cmath>
int main()
{
double f = 123.45;
double f3;
double f2 = std::modf(f, &f3);
std::cout << "Given the number " << f  << ", "
<< "modf() makes " << f3 << " and " << f2 << '\n';

f = -3.21;
f2 = std::modf(f, &f3);
std::cout << "Given the number " << f  << ", "
<< "modf() makes " << f3 << " and " << f2 << '\n';
}```

Output:

```Given the number 123.45, modf() makes 123 and 0.45
Given the number -3.21, modf() makes -3 and -0.21```