rint
, rintf
, rintl
Kayan nokta değerini kayan nokta biçiminde en yakın tamsayıya yuvarlar.
Sözdizimi
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
Parametreler
x
Yuvarlanacak kayan nokta değeri.
Dönüş değeri
İşlevler, rint
öğesine en yakın tamsayıyı x
temsil eden bir kayan nokta değeri döndürür. Yarı değerler, kayan nokta yuvarlama modunun geçerli ayarına göre yuvarlanır ve işlevlerle nearbyint
aynıdır. İşlevlerin nearbyint
aksine, rint
sonuç bağımsız değişkenden farklı bir değere sahipse işlevler kayan nokta özel durumunu tetikler FE_INEXACT
. Hata döndürme yok.
Giriş | SEH özel durumu | _matherr özel durumu |
---|---|---|
± INF, QNaN, IND | yok | yok |
Normal Dışı | EXCEPTION_FLT_UNDERFLOW |
yok |
Açıklamalar
C++ aşırı yüklemeye izin verdiğinden, bu alma ve döndürme float
ile long double
değerlerinin rint
aşırı yüklemelerini çağırabilirsiniz. C programında, bu işlevi çağırmak için tgmath.h makrosunu <kullanmıyorsanız, rint
her zaman bir double
alır ve döndürür.>
tgmath.h>rint()
makroyu <kullanırsanız, işlevin hangi sürümünün seçili olduğunu bağımsız değişkenin türü belirler. Ayrıntılar için bkz . Tür genel matematik .
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Gereksinimler
İşlev | C üst bilgisi | C++ üst bilgisi |
---|---|---|
rint , rintf , rintl |
<math.h> | <cmath> |
rint Makro |
<tgmath.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// 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
Ayrıca bkz.
Matematik ve kayan nokta desteği
ceil
, ceilf
, ceill
floor
, floorf
, floorl
fmod
, fmodf
lrint
, lrintf
, lrintl
, , llrint
, llrintf
, llrintl
lround
, lroundf
, lroundl
, , llround
, llroundf
, llroundl
nearbyint
, nearbyintf
, nearbyintl
rint