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