Bagikan melalui


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

Function 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

Baca 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