lround
, , lroundf
lroundl
, llround
, , llroundf
llroundl
Rundet einen Gleitkommawert auf die nächste Ganzzahl.
Syntax
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
Parameter
x
Der zu rundende Gleitkommawert.
Rückgabewert
Die Funktionen lround
und llround
geben die long
-Ganzzahl oder die long long
-Ganzzahl zurück, die x
am nächsten liegt. Halbe Werte werden kaufmännisch gerundet, unabhängig von der Einstellung des Gleitkomma-Rundungsmodus. Es gibt keine Fehlerrückgabe.
Eingabe | SEH-Ausnahme | _matherr -Ausnahme |
---|---|---|
± QNaN, IND | keine | _DOMAIN |
Hinweise
Da C++ eine Überladung zulässt, können Sie Überladungen aufrufen lround
oder llround
überladen, die werte annehmen und long double
zurückgebenfloat
. In einem C-Programm, es sei denn, Sie verwenden das <Makro tgmath.h> , um diese Funktion aufzurufen, lround
und llround
nehmen und geben Sie immer ein double
.
Wenn Sie das Makro <tgmath.h>lround()
verwenden, bestimmt der Typ des Arguments, welche Version der Funktion ausgewählt ist. Ausführliche Informationen finden Sie unter Typgengenerische Mathematik.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Anforderungen
Routine | Erforderlicher Header |
---|---|
lround , , lroundf lroundl , llround , , llroundf llroundl |
<math.h> |
lround -Makro |
<tgmath.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// 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
Siehe auch
Mathematische Unterstützung und Gleitkommaunterstützung
ceil
, ceilf
ceill
floor
, floorf
floorl
fmod
, fmodf
lrint
, , lrintf
lrintl
, llrint
, , llrintf
llrintl
round
, roundf
roundl
nearbyint
, nearbyintf
nearbyintl
rint
, rintf
rintl