次の方法で共有


nearbyintnearbyintfnearbyintl

指定の浮動小数点値を整数に丸め、浮動小数点形式でその値を返します。

構文

double nearbyint( double x );
float nearbyintf( float x );
long double nearbyintl( long double x );
#define nearbyint( X ) // Requires C11 or higher

float nearbyint( float x ); //C++ only
long double nearbyint( long double x ); //C++ only

パラメーター

x
丸める値。

戻り値

成功した場合は、fegetroundによって報告された現在の丸め形式を使用して、最も近い整数に丸められたxを返します。 それ以外の場合は、関数から次の値のいずれかが返されます。

問題点 Return
x = ±INFINITY ±INFINITY (変更されません)
x = ±0 ±0 (変更されません)
x = NaN NaN

エラーは _matherrを通じて報告されません。具体的には、この関数は FE_INEXACT 例外を報告しません。

解説

この関数と rint の主な違いは、この関数が非不正確な浮動小数点例外を発生させないという点です。

浮動小数点の最大値は正確な整数であるため、この関数が単独でオーバーフローすることはありません。むしろ、使用する関数のバージョンによっては、出力で戻り値がオーバーフローすることがあります。

C++ ではオーバーロードができるため、float または long double のパラメーターを受け取って返す nearbyint のオーバーロードを呼び出すことができます。 C プログラムでは、 <tgmath.h> マクロを使用してこの関数を呼び出す場合を除き、 nearbyint は常に 2 つの double 値を受け取り、double 値を返します。

<tgmath.h>nearbyint() マクロを使用する場合は、引数の型によって、この関数のどのバージョンが選択されるかが決定されます。 詳細については、「ジェネリック型数値演算」を参照してください。

既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT でのグローバル状態」を参照してください。

要件

機能 C ヘッダー C++ ヘッダー
nearbyintnearbyintfnearbyintl <math.h> <cmath> または <math.h>
nearbyint マクロ <tgmath.h>

互換性の詳細については、「 Compatibility」を参照してください。

関連項目

関数リファレンス (アルファベット順)
数値演算と浮動小数点のサポート