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 | なし | なし |
非正規化数 | EXCEPTION_FLT_UNDERFLOW |
なし |
解説
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> |
互換性の詳細については、「 Compatibility」を参照してください。
例
// 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