modf
From cppreference.com
                    
                                        
                    
                    
                                                            
                    | Defined in header  <math.h> | ||
| float       modff( float arg, float* iptr ); | (since C99) | |
| double      modf( double arg, double* iptr ); | ||
| long double modfl( long double arg, long double* iptr ); | (since C99) | |
Decomposes given floating point value arg into integral and fractional parts, each having the same type and sign as arg. The integral part (in floating-point format) is stored in the object pointed to by iptr.
| Contents | 
[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 arg with the same sign as arg. The integral part is put into the value pointed to by iptr.
[edit] Example
Run this code
#include <stdio.h> #include <math.h> int main(void) { double whole,fract; fract = modf(+1.5,&whole); printf("%+4.0f %+f\n", whole,fract); fract = modf(-1.5,&whole); printf("%+4.0f %+f\n", whole,fract); fract = modf(+INFINITY,&whole); printf("%+4.0f %+f\n", whole,fract); fract = modf(-INFINITY,&whole); printf("%+4.0f %+f\n", whole,fract); fract = modf(+NAN,&whole); printf("%+4f %+f\n", whole,fract); fract = modf(-NAN,&whole); printf("%+4f %+f\n", whole,fract); return 0; }
Possible output:
+1 +0.500000 -1 -0.500000 +inf +0.000000 -inf -0.000000 +nan +nan -nan -nan
[edit] See also
| (C99)(C99)(C99) | rounds to nearest integer not greater in magnitude than the given value (function) | 
| C++ documentation for modf | |


