##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::modf

From cppreference.com
< cpp‎ | numeric‎ | math

Defined in header `<cmath>` |  |
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`.

### [edit] Parameters

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

### [edit] 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`.

### [edit] Example

Run this code

    #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

### [edit] See also

trunc (C++11) | nearest integer not greater in magnitude than the given value (function) [edit]

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/numeric/math/modf&oldid=58626"