modf、modff
整数部分と小数に浮動小数点値を分割します。
double modf(
double x,
double *intptr
);
float modf(
float x,
float *intptr
); // C++ only
long double modf(
long double x,
long double * intptr
); // C++ only
float modff(
float x,
float *intptr
);
パラメーター
x
浮動小数点値。intptr
保存された整数の部分へのポインター。
戻り値
この関数の戻り値 x. で署名された小数部 *。*エラーの戻り値はありません。
解説
modf の関数にはx. と同じ署名を持つ整数部分と小数に破棄されるためX を 浮動小数点値 。x で署名された小数部が返されます。整数の部分は intptr の浮動小数点値として格納されます 。
modf にストリーミング SIMD 拡張 2 (SSE2) をストリームに使用する実装されています。SSE2 実装の詳細と使用に関する制限事項については _set_SSE2_enable を参照してください。
C++ ではオーバーロードが可能であるため、modf のオーバーロードを呼び出すことができます。C. のプログラムではmodf は 2 回の倍精度浮動小数点値を常に受け取り二つの値を返します。
必要条件
ルーチン |
必須ヘッダー |
---|---|
modf, modff |
<math.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
ライブラリ
C ランタイム ライブラリのすべてのバージョン。
使用例
// crt_modf.c
#include <math.h>
#include <stdio.h>
int main( void )
{
double x, y, n;
x = -14.87654321; /* Divide x into its fractional */
y = modf( x, &n ); /* and integer parts */
printf( "For %f, the fraction is %f and the integer is %.f\n",
x, y, n );
}
出力
For -14.876543, the fraction is -0.876543 and the integer is -14