rint
, , rintf
rintl
Arrondit une valeur à virgule flottante à l'entier le plus proche dans un format à virgule flottante.
Syntaxe
double rint( double x );
float rintf( float x );
long double rintl( long double x );
#define rint(X) // Requires C11 or higher
float rint( float x ); // C++ only
long double rint( long double x ); // C++ only
Paramètres
x
Valeur à virgule flottante à arrondir.
Valeur retournée
Les fonctions rint
retournent une valeur à virgule flottante qui représente l'entier le plus proche de x
. Les valeurs médianes sont arrondies en fonction du paramètre actif du mode d'arrondi à virgule flottante, à l'instar des fonctions nearbyint
. Contrairement aux fonctions nearbyint
, les fonctions rint
peuvent lever l'exception de virgule flottante FE_INEXACT
si le résultat est différent de la valeur de l'argument. Il n’existe aucun retour d’erreur.
Input | Exception SEH | Exception _matherr |
---|---|---|
± INF, QNaN, IND | aucun | aucun |
Nombres dénormalisés | EXCEPTION_FLT_UNDERFLOW |
Aucune |
Notes
C++ autorisant la surcharge, vous pouvez appeler des surcharges de rint
qui acceptent et retournent des valeurs float
et long double
. Dans un programme C, sauf si vous utilisez la macro <tgmath.h> pour appeler cette fonction, rint
prend toujours et retourne double
.
Si vous utilisez la macro <tgmath.h>rint()
, le type de l’argument détermine la version de la fonction sélectionnée. Pour plus d’informations, consultez les mathématiques génériques de type.
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
Fonction | En-tête C | En-tête C++ |
---|---|---|
rint , , rintf rintl |
<math.h> | <cmath> |
Macro rint |
<tgmath.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// crt_rint.c
// Build with: cl /W3 /Tc crt_rint.c
// This example displays the rounded results of
// the floating-point values 2.499999, -2.499999,
// 2.8, -2.8, 2.5 and -2.5.
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 2.499999;
float y = 2.8f;
long double z = 2.5;
printf("rint(%f) is %.0f\n", x, rint (x));
printf("rint(%f) is %.0f\n", -x, rint (-x));
printf("rintf(%f) is %.0f\n", y, rintf(y));
printf("rintf(%f) is %.0f\n", -y, rintf(-y));
printf("rintl(%Lf) is %.0Lf\n", z, rintl(z));
printf("rintl(%Lf) is %.0Lf\n", -z, rintl(-z));
}
rint(2.499999) is 2
rint(-2.499999) is -2
rintf(2.800000) is 3
rintf(-2.800000) is -3
rintl(2.500000) is 3
rintl(-2.500000) is -3
Voir aussi
Prise en charge des fonctions mathématiques et à virgule flottante
ceil
, , ceilf
ceill
floor
, , floorf
floorl
fmod
, fmodf
lrint
, , lrintf
, llrint
lrintl
, , llrintf
llrintl
lround
, , lroundf
, llround
lroundl
, , llroundf
llroundl
nearbyint
, , nearbyintf
nearbyintl
rint