modf, modff, modfl

Divide un valor de punto flotante en partes fraccionarias y enteras.

Sintaxis

double modf( double x, double * intptr );
float modff( float x, float * intptr );
long double modfl( long double x, long double * intptr );
float modf( float x, float * intptr );  // C++ only
long double modf( long double x, long double * intptr );  // C++ only

Parámetros

x
Valor de punto flotante.

intptr
Puntero a la parte entera almacenada.

Valor devuelto

Esta función devuelve la parte fraccionaria con signo de x. No se devuelve ningún error.

Comentarios

Las funciones modf desglosan el valor de punto flotante x en fracciones y partes de enteros, cada uno de los cuales tiene el mismo signo que x. Se devuelve la parte fraccionaria con signo de x. La parte entera se almacena como valor de punto flotante en intptr.

modf tiene una implementación que usa las Extensiones SIMD de transmisión por secuencias 2 (SSE2). Consulte _set_SSE2_enable para obtener información y conocer las restricciones sobre el uso de la implementación de SSE2.

Puesto que C++ permite las sobrecargas, es posible llamar a las sobrecargas de modf que toman y devuelven los parámetros float o long double. En un programa de C, modf siempre toma dos valores double y devuelve uno.

De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.

Requisitos

Routine Encabezado necesario
modf, modff, modfl C: <math.h>

C++: <cmath> o bien <math.h>

Para obtener más información sobre compatibilidad, consulte Compatibilidad.

Ejemplo

// 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 );
}
For -14.876543, the fraction is -0.876543 and the integer is -14

Consulte también

Compatibilidad con matemáticas y punto flotante
frexp
ldexp