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 |
none |
none |
非正規化数 |
EXCEPTION_FLT_UNDERFLOW |
none |
解説
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