rint
, , rintf
rintl
Membulatkan nilai floating-point ke bilangan bulat terdekat dalam format floating-point.
Sintaks
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
Nilai floating-point untuk dibulatkan.
Nilai hasil
Fungsi rint
mengembalikan nilai floating-point yang mewakili bilangan bulat terdekat ke x
. Nilai setengah dibulatkan sesuai dengan pengaturan mode pembulatan floating-point saat ini, sama dengan nearbyint
fungsi. nearbyint
Tidak seperti fungsi, rint
fungsi dapat meningkatkan FE_INEXACT
pengecualian floating-point jika hasilnya berbeda dalam nilai dari argumen. Tidak ada pengembalian kesalahan.
Input | Pengecualian SEH | Pengecualian _matherr |
---|---|---|
± INF, QNaN, IND | tidak ada | tidak ada |
Denormal | EXCEPTION_FLT_UNDERFLOW |
tidak ada |
Keterangan
Karena C++ memungkinkan kelebihan beban, Anda dapat memanggil kelebihan beban rint
yang mengambil dan mengembalikan float
dan long double
nilai. Dalam program C, kecuali Anda menggunakan <makro tgmath.h> untuk memanggil fungsi ini, rint
selalu mengambil dan mengembalikan double
.
Jika Anda menggunakan <makro tgmath.h>rint()
, jenis argumen menentukan versi fungsi mana yang dipilih. Lihat Matematika generik jenis untuk detailnya.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Persyaratan
Fungsi | Header C | Header C++ |
---|---|---|
rint , , rintf rintl |
<matematika.h> | <cmath> |
rint makro |
<tgmath.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// 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
Lihat juga
Dukungan matematika dan titik mengambang
ceil
, , ceilf
ceill
floor
, , floorf
floorl
fmod
, fmodf
lrint
, , lrintf
lrintl
, llrint
, , llrintf
,llrintl
lround
, , lroundf
lroundl
, llround
, , llroundf
,llroundl
nearbyint
, , nearbyintf
nearbyintl
rint