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
Vea también
Compatibilidad con cálculos matemáticos y el punto flotante
frexp
ldexp