函式
<cmath> <ctgmath>

modf

double modf (double x, double* intpart);
     double modf  (double x     , double* intpart);      float modff (float x      , float* intpart);long double modfl (long double x, long double* intpart);
     double modf (double x     , double* intpart);      float modf (float x      , float* intpart);long double modf (long double x, long double* intpart);
     double modf (double x     , double* intpart);      float modf (float x      , float* intpart);long double modf (long double x, long double* intpart);     double modf (T x          , double* intpart);       // additional overloads
分解為小數和整數部分
x 分解為整數部分和小數部分。

整數部分儲存在 intpart 指向的物件中,小數部分由函式返回。

兩個部分的符號都與 x 相同。

此標頭檔案 (<cmath>) 中為整數型別提供了額外的過載:這些過載在計算前有效地將 x 轉換為 double(為任意整數型別T 定義)。

引數

x
要分解的浮點數值。
intpart
指向一個物件(與 x 型別相同)的指標,整數部分將以與 x 相同的符號儲存在此處。

返回值

x 的小數部分,符號相同。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
/* modf example */
#include <stdio.h>      /* printf */
#include <math.h>       /* modf */

int main ()
{
  double param, fractpart, intpart;

  param = 3.14159265;
  fractpart = modf (param , &intpart);
  printf ("%f = %f + %f \n", param, intpart, fractpart);
  return 0;
}

輸出

3.141593 = 3.000000 + 0.141593


另見