我有double a=1234.5678
,现在我可以1234
过floor(a)
,但我怎么过0.5678
?我知道我可以减去a-floor(a)
,但是运行时库中有函数吗?
问问题
439 次
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
于 2013-05-13T06:30:28.613 回答
2
您正在寻找的功能是modf()
.
double modf(double x, double *iptr);
该
modf()
函数将参数x分解为整数部分和小数部分,每个部分与x具有相同的符号。整数部分存储在iptr指向的位置。该函数返回x
modf()
的小数部分。
于 2013-05-13T06:30:24.890 回答