C++官网参考链接:https://cplusplus.com/reference/cmath/modf/
函数
<cmath> <ctgmath>
modf
C90
double modf(double x, double* intpart);
C99
double modf(double x, double* intpart);
float modff(float x, float* intpart);
long double modfl(long double x, long double* intpart);
C++98
double modf(double x, double* intpart);
float modf (float x, float* intpart);
long double modf(long double x, long double* intpart);
C++11
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一样。
C++11
在此头文件(<cmath>)中为整型(integral types)提供了额外的重载:这些重载在计算之前有效地将x转换为double类型(定义T为任何整型(integral types))。
形参
x
分解成部分的浮点数。
intpart
指向对象(与x类型相同)的指针,其中整数部分以与x相同的符号存储。
返回值
x的小数部分,与x符号相同。
用例
/* 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;
}
输出: