rint
, rintf
rintl
Rundet einen Gleitkommawert auf die nächste Ganzzahl im Gleitkommaformat.
Syntax
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
Parameter
x
Der zu rundende Gleitkommawert.
Rückgabewert
Die rint
-Funktionen geben einen Gleitkommawert zurück, der die nächste ganze Zahl zu x
darstellt. Halbe Werte werden gemäß der aktuellen Einstellung für das Gleitkomma-Rundungsverhalten gerundet, wie bei den nearbyint
-Funktionen. Im Gegensatz zu den nearbyint
-Funktionen rufen die rint
-Funktionen möglicherweise die FE_INEXACT
-Gleitkommaausnahme auf, wenn sich der Wert des Ergebnisses von dem des Arguments unterscheidet. Es gibt keine Fehlerrückgabe.
Eingabe | SEH-Ausnahme | _matherr -Ausnahme |
---|---|---|
± INF, QNaN, IND | keine | keine |
Abbrüche | EXCEPTION_FLT_UNDERFLOW |
keine |
Hinweise
Da C++ das Überladen zulässt, können Sie Überladungen von rint
aufrufen, die float
- und long double
-Werte verwenden und zurückgeben. In einem C-Programm, es sei denn, Sie verwenden das Makro <tgmath.h>, um diese Funktion aufzurufen, übernimmt rint
und gibt immer ein double
zurück.
Wenn Sie das Makro <tgmath.h>rint()
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
Funktion | C-Header | C++-Header |
---|---|---|
rint , rintf rintl |
<math.h> | <cmath> |
rint -Makro |
<tgmath.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// 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
Siehe auch
Mathematische Unterstützung und Gleitkommaunterstützung
ceil
, ceilf
ceill
floor
, floorf
floorl
fmod
, fmodf
lrint
, , lrintf
lrintl
, llrint
, , llrintf
llrintl
lround
, , lroundf
lroundl
, llround
, , llroundf
llroundl
nearbyint
, nearbyintf
nearbyintl
rint