Condividi tramite


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

Equivalente .NET Framework

Vedere anche

Riferimenti

Supporto a virgola mobile

Long Double

frexp

ldexp