我愿意进行精确的操作,为此,我需要一种方法
将浮点数分成整数和小数部分。
有什么办法吗?
最佳答案
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/