Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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 later
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, , rintfrintl |
<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, , ceilfceill
floor, , floorffloorl
fmod, fmodf
lrint, , lrintflrintl, llrint, , llrintf,llrintl
lround, , lroundflroundl, llround, , llroundf,llroundl
nearbyint, , nearbyintfnearbyintl
rint