Share via


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