如何在C中获得round()/ floor()的反面?

exe*_*ook 1 c floating-point double

我有double a=1234.5678,现在我能得到1234通过floor(a),但我如何获得0.5678?我知道我可以减去a-floor(a),但运行时库中是否有一个函数?

Dav*_*eri 5

modf 打破两个部分的双倍价值

double param, fractpart, intpart;

param = 3.14159265;
fractpart = modf (param , &intpart);
printf ("%f = %f + %f \n", param, intpart, fractpart);
return 0;
Run Code Online (Sandbox Code Playgroud)

输出:3.141593 = 3.000000 + 0.141593

你必须包括 math.h

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