1

我有double a=1234.5678,现在我可以1234floor(a),但我怎么过0.5678?我知道我可以减去a-floor(a),但是运行时库中有函数吗?

4

2 回答 2

5

modf将双精度值分成两部分

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

你必须包括math.h

http://www.cplusplus.com/reference/cmath/modf/

于 2013-05-13T06:30:28.613 回答
2

您正在寻找的功能是modf().

double modf(double x, double *iptr);

modf()函数将参数x分解为整数部分和小数部分,每个部分与x具有相同的符号。整数部分存储在iptr指向的位置。

该函数返回xmodf()的小数部分。

于 2013-05-13T06:30:24.890 回答