---
title: modf
description: "返回值为小数部分（小数点后的部分），并把整数部分存储在iptr中。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengaccel/math-lib/devg-kml/kunpengaccel_kml_0241.html
sourcePath: /source/zh/kunpengaccel/math-lib/devg-kml/kunpengaccel_kml_0241.html
indexId: 9977ed22ac7c65297d458fa0bf292b2394f8b07e14463b320441f9a868d7e95368
---
# modf

返回值为小数部分（小数点后的部分），并把整数部分存储在iptr中。

#### 接口定义

C interface：

float modff(float x, float *iptr);

double modf(double x, double *iptr);

long double modfl(long double x, long double *iptr);


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| x | 在modff中，x是单精度浮点类型。 在modf中，x是双精度浮点类型。 在modfl中，x是长双精度浮点类型。 | 表示输入数据的浮点值。 | 输入 |
| iptr | 在modff中，iptr是单精度浮点类型指针。 在modf中，iptr是双精度浮点类型指针。 在modfl中，iptr是长双精度浮点类型指针。 | 存储入参浮点数整数部分 | 输出 |


#### 返回值

返回值为小数部分（小数点后的部分），并把整数部分存储在iptr中。


#### 依赖

C: "km.h"


#### 示例

C interface：```
// typical usage
    double iptr;
    printf("modf(3.4, &iptr) = %.15f, iptr = %.15f\n", modf(3.4, &iptr), iptr);
    printf("modf(-4.8, &iptr) = %.15f, iptr = %.15f\n", modf(-4.8, &iptr), iptr);


result
    /* 
     * modf(3.4, &iptr) = 0.400000000000000, iptr = 3.000000000000000
     * modf(-4.8, &iptr) = -0.800000000000000, iptr = -4.000000000000000
     * */
```
