rint
、 、 rintf
rintl
將浮點值四捨五入為最接近的整數,並使用浮點格式。
語法
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
參數
x
要四捨五入的浮點值。
傳回值
rint
函式會傳回表示 x
的最接近整數的浮點值。 和 nearbyint
函式一樣,中間值會根據浮點四捨五入模式的目前設定進行四捨五入。 和 nearbyint
函式不一樣的是,若結果與引數的值不同,rint
函式可能會引發 FE_INEXACT
浮點例外狀況。 不會傳回錯誤。
輸入 | SEH 例外狀況 | _matherr 例外 |
---|---|---|
± INF、QNaN、IND | none | none |
非正規數 | EXCEPTION_FLT_UNDERFLOW |
none |
備註
因為 C++ 允許多載,所以您可以呼叫採用並傳回 rint
和 float
值的 long double
的多載。 在 C 程式中,除非您使用 <tgmath.h> 巨集來呼叫此函式,否則 rint
一律會採用並傳回 double
。
如果您使用 <tgmath.h>rint()
巨集,則引數的型別會決定選取哪一個函式版本。 如需詳細資料,請參閱型別泛型數學。
根據預設,此函式的全域狀態會限定於應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態。
需求
函式 | C 標頭 | C++ 標頭 |
---|---|---|
rint 、 、 rintf rintl |
<math.h> | <cmath> |
rint 巨集 |
<tgmath.h> |
如需相容性詳細資訊,請參閱相容性。
範例
// 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
另請參閱
數學與浮點支援
ceil
、 、 ceilf
ceill
floor
、 、 floorf
floorl
fmod
, fmodf
lrint
、、lrintf
lrintl
、llrint
、、llrintf
、llrintl
lround
、、lroundf
lroundl
、llround
、、llroundf
、llroundl
nearbyint
、 、 nearbyintf
nearbyintl
rint