C++ modf() 分解浮点数函数
正如提到的,modf() 将一个数字分解为整数部分和小数部分。这个函数返回小数部分,并将整数部分存储在传递给 modf() 作为参数的指针所指的地址中。
这个函数定义在 <cmath>
头文件中。
modf() 函数原型 [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); // T 是一个整数类型
modf() 参数
modf() 接受两个参数:
- x - 要分解为两部分的值。
- intpart - 指向一个对象(与 x 同类型)的指针,其中存储了与 x 符号相同的整数部分。
modf() 返回值
modf() 函数返回传递给它的参数的小数部分。
示例 1:modf() 如何工作?
#include <iostream>
#include <cmath>
using namespace std;
int main ()
{
double x = 14.86, intPart, fractPart;
fractPart = modf(x, &intPart);
cout << x << " = " << intPart << " + " << fractPart << endl;
x = -31.201;
fractPart = modf(x, &intPart);
cout << x << " = " << intPart << " + " << fractPart << endl;
return 0;
}
当你运行程序时,输出将会是:
14.86 = 14 + 0.86
-31.201 = -31 + -0.201
示例 2:第一个参数为整数值的 modf()
#include <iostream>
#include <cmath>
using namespace std;
int main ()
{
int x = 5;
double intpart, fractpart;
fractpart = modf(x, &intpart);
cout << x << " = " << intpart << " + " << fractpart << endl;
return 0;
}
当你运行程序时,输出将会是:
5 = 5 + 0