我正在写一个函数,它将以void指针的形式传递一个float。我正在尝试做的是将该float转换为一个字符串,以便我可以将该二进制数据保存在内存中。例如,调用我的函数如下:将float转换为字符串c
void * f(void * data);
如果有一个用户我
float value = 3.14;
我想将其转换为字符串,如下图所示:
"3.14"
我认为我应该使用的方法是首先确定浮点数内的数值:3.14 =四个值。然后,我将不得不遍历每个值并将其转换为字符。
我遇到的几个问题是1:我不确定是否可以确定与给定的浮点数关联的值的数量。 2:我将如何将每个值转换为相应的字符串?
我碰到itoa和sprintf。然而,itoa不是标准C库的一部分,我不确定sprintf是否会按我的意愿去做。
的sprintf(STR, “%4.2f”,浮动) –
你可能想'sprintf'。你不能(通常)找出一些数字 - 例如,作为(例如)'1.2'传递的东西将会以'1.99999999999999'的顺序结束(超出类型的精度 - 但是二进制浮点数不能精确地表示'0.2'。 –