現在の丸めモードと方向を使用して、指定された浮動小数点値を最も近い整数値に丸めます。
構文
long int lrint(
double x
);
long int lrint(
float x
); //C++ only
long int lrint(
long double x
); //C++ only
long int lrintf(
float x
);
long int lrintl(
long double x
);
long long int llrint(
double x
);
long long int llrint(
float x
); //C++ only
long long int llrint(
long double x
); //C++ only
long long int llrintf(
float x
);
long long int llrintl(
long double x
);
#define lrint(X) // Requires C11 or later
パラメーター
x
丸める値。
戻り値
正常に終了した場合、x を丸めた整数値を返します。
| 問題点 | Return |
|---|---|
x は戻りの型の範囲外です。x = ±INFx = NaN |
FE_INVALIDを発生させ、ゼロ (0) を返します。 |
解説
C++ ではオーバーロードが可能であるため、float型とlong double型を受け取るlrintとllrintのオーバーロードを呼び出すことができます。 C プログラムでは、 <tgmath.h> マクロを使用してこの関数を呼び出す場合を除き、 lrint と llrint 常に doubleを受け取ります。
<tgmath.h>llrint() マクロを使用する場合は、引数の型によって、この関数のどのバージョンが選択されるかが決定されます。 詳細については、「ジェネリック型数値演算」を参照してください。
xが整数値に相当する浮動小数点を表さない場合、これらの関数はFE_INEXACTを発生させます。
Microsoft 固有: 結果が戻りの型の範囲外の場合、またはパラメーターが非数 (NaN) または無限値 (infinity) の場合、戻り値は実装で定義されます。 Microsoft コンパイラは0 の値を返します。
既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT でのグローバル状態」を参照してください。
要件
| 機能 | C ヘッダー | C++ ヘッダー |
|---|---|---|
lrint、 lrintf、 lrintl、 llrint、 llrintf、 llrintl |
<math.h> | <cmath> |
lrint マクロ |
<tgmath.h> |
互換性の詳細については、「 Compatibility」を参照してください。