rint、rintf、rintl
將浮點值四捨五入為最接近的整數,並使用浮點格式。
double rint( double x );
float rint( float x ); // C++ only
long double rint( long double x ); // C++ only
float rintf( float x );
long double rintl( long double x );
參數
- x
要四捨五入的浮點值。
傳回值
rint 函式會傳回表示 x 的最接近整數的浮點值。 和 nearbyint 函式一樣,中間值會根據浮點四捨五入模式的目前設定進行四捨五入。 和 nearbyint 函式不一樣的是,若結果與引數的值不同,rint 函式可能會引發 FE_INEXACT 浮點例外狀況。 不會傳回錯誤。
輸入 |
SEH 例外狀況 |
_matherr 例外狀況 |
---|---|---|
± ∞、QNAN、IND |
無 |
無 |
非正規數 |
EXCEPTION_FLT_UNDERFLOW |
無 |
備註
因為 C++ 允許多載,所以您可以呼叫採用並傳回 float 和 long double 值的 rint 的多載。 在 C 程式中,rint 會一律採用並傳回 double。
需求
函式 |
C 標頭 |
C++ 標頭 |
---|---|---|
rint, rintf, rintl |
<math.h> |
<cmath> |
如需其他相容性資訊,請參閱 相容性。
範例
// 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));
}
.NET Framework 對等用法
請參閱
參考
lround、lroundf、lroundl、llround、llroundf、llroundl