我愿意进行精确的操作,为此,我需要一种方法
将浮点数分成整数和小数部分。
有什么办法吗?

最佳答案

math.h库中包含一个称为 modf 的函数
使用此功能,您可以做您想做的事情。

示例:

#include <stdio.h>
#include <math.h>

double ftof ()
{
    double floating = 3.40, fractional, integer;

    fractional = modf(floating, &integer);
    printf ("Floating: %g\nInteger: %g\nFractional: %g", floating, integer, fractional); // when using printf, there are no floats

    return fractional;
}

输出:
Floating: 3.40
Integer: 3
Fractional: 0.40

请注意,在大多数情况下,尽管使用double,但使用float比使用double更好。
消耗的内存是float的两倍(4:8字节),因此增加了范围和准确性。同样,如果您需要更精确的输出
较大的浮点数在打印时,您可以尝试使用printf()指数格式说明符%e代替%g,后者仅使用
float 小数的最短表示形式。

关于c - 如何将float分为整数和小数部分?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23993898/

10-11 18:10