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
|