rint
, , rintf
rintl
Zaokrągla wartość zmiennoprzecinkową do najbliższej liczby całkowitej w formacie zmiennoprzecinkowym.
Składnia
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
Parametry
x
Wartość zmiennoprzecinkowa do zaokrąglonej.
Wartość zwracana
Funkcje rint
zwracają wartość zmiennoprzecinkową, która reprezentuje najbliższą liczbę całkowitą do x
. Wartości w połowie są zaokrąglane zgodnie z bieżącym ustawieniem trybu zaokrąglania zmiennoprzecinkowego, tak samo jak nearbyint
funkcje. nearbyint
W przeciwieństwie do funkcji, funkcje mogą zgłaszać FE_INEXACT
wyjątek zmiennoprzecinkowa, rint
jeśli wynik różni się wartością od argumentu. Nie ma zwracanego błędu.
Dane wejściowe | Wyjątek SEH | Wyjątek _matherr |
---|---|---|
± INF, QNaN, IND | Brak | Brak |
Denormale | EXCEPTION_FLT_UNDERFLOW |
Brak |
Uwagi
Ponieważ język C++ umożliwia przeciążenie, można wywołać przeciążenia tych wartości rint
, które przyjmują i zwracają float
i long double
wartości. W programie języka C, chyba że używasz makra <tgmath.h> do wywołania tej funkcji, rint
zawsze przyjmuje i zwraca wartość double
.
Jeśli używasz makra <tgmath.h>rint()
, typ argumentu określa, która wersja funkcji jest zaznaczona. Aby uzyskać szczegółowe informacje, zobacz Typy ogólne matematyczne .
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Wymagania
Function | Nagłówek języka C | Nagłówek języka C++ |
---|---|---|
rint , , rintf rintl |
<math.h> | <cmath> |
rint Makro |
<tgmath.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// 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
Zobacz też
Obsługa obliczeń matematycznych i zmiennoprzecinkowych
ceil
, , ceilf
ceill
floor
, , floorf
floorl
fmod
, fmodf
lrint
, , lrintf
, lrintl
, llrint
, , llrintf
llrintl
lround
, , lroundf
, lroundl
, llround
, , llroundf
llroundl
nearbyint
, , nearbyintf
nearbyintl
rint