---
title: modf
description: "返回值为小数部分（小数点后的部分），并把整数部分存储在iptr中。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/240RC2/accel/kunpengaccel_kml_16_0007.html
sourcePath: /source/zh/kunpengboostkithistory/240RC2/accel/kunpengaccel_kml_16_0007.html
indexId: 5696e28ce1a8d96d681258e9633fba393f3b8add772f0f58f3c25ecfbc1b0fa376
---
# 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
* */
```
