modf, modff
Divide un valore a virgola mobile in parti frazionarie e intere.
double modf(
double x,
double *intptr
);
float modf(
float x,
float *intptr
); // C++ only
long double modf(
long double x,
long double * intptr
); // C++ only
float modff(
float x,
float *intptr
);
Parametri
x
Valore a virgola mobile.intptr
Puntatore alla porzione intera archiviata.
Valore restituito
Questa funzione restituisce la parte decimale con segno di x. Nessun ritorno di errore.
Note
La funzione modf suddivide il valore a virgola mobile x in parti frazionarie e intere, ognuno dei quali presenta lo stesso segno di x. La parte decimale con segno x viene restituita. La parte Integer viene memorizzata come valore a virgola mobile su intptr.
modf dispone di un'implementazione che utilizza Streaming SIMD Extensions 2 (SSE2). Vedere _set_SSE2_enable per informazioni e le restrizioni sull'utilizzo dell'implementazione di SSE2.
Il C++ consente l'overload, pertanto è possibile chiamare gli overload di modf. In un programma C, modf accetta sempre due valori double e restituisce un valore double.
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
modf, modff |
<math.h> |
Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'Introduzione.
Librerie
Tutte le versioni delle Librerie di runtime C.
Esempio
// 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 );
}
Output
For -14.876543, the fraction is -0.876543 and the integer is -14