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
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應