Partager via


modf, , modffmodfl

Scinde une valeur à virgule flottante en une partie fractionnaire et une partie entière.

Syntaxe

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

Paramètres

x
Valeur à virgule flottante.

intptr
Pointeur désignant la partie entière stockée.

Valeur retournée

Cette fonction retourne la partie fractionnaire signée de x. Il n’existe aucun retour d’erreur.

Notes

Les fonctions modf scindent la valeur à virgule flottante x en une partie fractionnaire et une partie entière, chacune d’elles ayant le même signe que x. La partie fractionnaire signée de x est retournée. La partie entière est stockée sous forme de valeur à virgule flottante à l’adresse intptr.

modf présente une implémentation qui utilise SSE2 (Streaming SIMD Extensions 2). Pour _set_SSE2_enable plus d’informations et de restrictions sur l’utilisation de l’implémentation SSE2.

C++ autorisant la surcharge, vous pouvez appeler des surcharges de modf qui acceptent et retournent des paramètres float ou long double. Dans un programme C, modf prend toujours deux valeurs doubles et en une.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Spécifications

Routine En-tête requis
modf, , modffmodfl C: <math.h>

C++ : , <cmath> ou <math.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

// 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

Voir aussi

Prise en charge des fonctions mathématiques et à virgule flottante
frexp
ldexp