trunc
、 truncf
、 truncl
指定した浮動小数点以下に最も近い整数を指定します。
構文
double trunc( double x );
long double truncl( long double x );
#define trunc(X) // Requires C11 or higher
long double trunc( long double x ); //C++ only
float trunc( float x ); //C++ only
パラメーター
x
切り捨てる値。
戻り値
成功した場合、関数は 0 に丸められた x
の整数値を返します。
それ以外の場合、関数は次のいずれかの値を返します。
問題点 | Return |
---|---|
x = ±INFINITY |
x |
x = ±0 |
x |
x = NaN |
NaN |
エラーは、_matherr
で指定されたとおりに報告されます。
解説
C++ ではオーバーロードが可能であるため、trunc
型および float
型を受け取って返す long double
のオーバーロードを呼び出すことができます。 C プログラムでは、<tgmath.h> マクロを使用してこの関数を呼び出す場合を除き、trunc
では常に double
を受け取って返します。
<tgmath.h>trunc()
マクロを使用する場合は、引数の型によって、この関数のどのバージョンが選択されるかが決定されます。 詳細については、「ジェネリック型数値演算」を参照してください。
最大の浮動小数点値は正確な整数であるため、この関数自体はオーバーフローしません。 ただし、整数型に値を返すことによって、関数のオーバーフローが発生する場合があります。
浮動小数点から整数に暗黙的に変換することで切り捨てることもできますが、これは対象の型に格納できる値に限ります。
要件
機能 | C ヘッダー | C++ ヘッダー |
---|---|---|
trunc 、 truncf 、 truncl |
<math.h> | <cmath> |
trunc マクロ |
<tgmath.h> |
互換性の詳細については、「 Compatibility」を参照してください。
関連項目
関数リファレンス (アルファベット順)
floor
、 floorf
、 floorl
ceil
、 ceilf
、 ceill
round
、 roundf
、 roundl