Freigeben über


rint, rintfrintl

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, rintfrintl <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, ceilfceill
floor, floorffloorl
fmod, fmodf
lrint, , lrintflrintl, llrint, , llrintfllrintl
lround, , lroundflroundl, llround, , llroundfllroundl
nearbyint, nearbyintfnearbyintl
rint