modf
, , modff
modfl
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 , , modff modfl |
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