lround
, lroundf
, lroundl
, llround
, llroundf
, llroundl
Arrondit une valeur à virgule flottante à l’entier le plus proche.
Syntaxe
long lround(
double x
);
long lround(
float x
); // C++ only
long lround(
long double x
); // C++ only
long lroundf(
float x
);
long lroundl(
long double x
);
long long llround(
double x
);
long long llround(
float x
); // C++ only
long long llround(
long double x
); // C++ only
long long llroundf(
float x
);
long long llroundl(
long double x
);
#define lround(X) // Requires C11 or higher
Paramètres
x
Valeur à virgule flottante à arrondir.
Valeur retournée
Les fonctions lround
et llround
retournent l’entier long
ou long long
le plus proche de x
. Les valeurs médianes sont arrondies en s’éloignant de zéro, indépendamment du paramètre du mode d’arrondi à virgule flottante. Il n’y a pas de retour d’erreur.
Entrée | Exception SEH | Exception _matherr |
---|---|---|
± QNaN, IND | aucune | _DOMAIN |
Notes
Étant donné que C++ autorise la surcharge, vous pouvez appeler lround
ou llround
surcharger qui acceptent et retournent float
et long double
valeurs. Dans un programme C, sauf si vous utilisez la <macro tgmath.h> pour appeler cette fonction, lround
et llround
toujours prendre et retourner un double
.
Si vous utilisez la <macro tgmath.h>lround()
, 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
Routine | En-tête requis |
---|---|
lround , lroundf , lroundl , llround , llroundf , llroundl |
<math.h> |
Macro lround |
<tgmath.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// crt_lround.c
// Build with: cl /W4 /Tc crt_lround.c
// This example displays the rounded results of
// the floating-point values 2.499999, -2.499999,
// 2.8, -2.8, 3.5 and -3.5.
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 2.499999;
float y = 2.8f;
long double z = 3.5L;
printf("lround(%f) is %d\n", x, lround(x));
printf("lround(%f) is %d\n", -x, lround(-x));
printf("lroundf(%f) is %d\n", y, lroundf(y));
printf("lroundf(%f) is %d\n", -y, lroundf(-y));
printf("lroundl(%Lf) is %d\n", z, lroundl(z));
printf("lroundl(%Lf) is %d\n", -z, lroundl(-z));
}
lround(2.499999) is 2
lround(-2.499999) is -2
lroundf(2.800000) is 3
lroundf(-2.800000) is -3
lroundl(3.500000) is 4
lroundl(-3.500000) is -4
Voir aussi
Prise en charge mathématique et à virgule flottante
ceil
, ceilf
, ceill
floor
, floorf
, floorl
fmod
, fmodf
lrint
, lrintf
, lrintl
, llrint
, llrintf
, llrintl
round
, roundf
, roundl
nearbyint
, nearbyintf
, nearbyintl
rint
, rintf
, rintl
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