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’y a pas de retour d’erreur.
Entrée | Exception SEH | Exception _matherr |
---|---|---|
± INF, QNaN, IND | aucune | aucune |
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 un 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 mathématique et à virgule flottante
ceil
, ceilf
, ceill
floor
, floorf
, floorl
fmod
, fmodf
lrint
, lrintf
, lrintl
, llrint
, llrintf
, llrintl
lround
, lroundf
, lroundl
, llround
, llroundf
, llroundl
nearbyint
, nearbyintf
, nearbyintl
rint
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour