Convertir un float en une chaîne de caractères en c

Je suis en train d'écrire une fonction qui sera passé un flotteur dans la forme d'un pointeur void. Ce que j'essaie de faire, c'est de convertir qui flottent dans une chaîne équivalente afin que je puisse enregistrer que des données binaires dans la mémoire. Par exemple, l'appel de ma fonction comme suit:

void * f(void * data);

Si un utilisateur passe me

float value = 3.14;

Je voudrais le convertir en une chaîne de caractères comme indiqué ci-dessous:

"3.14"

L'approche que je pense que je devrais utiliser, serait d'abord déterminer le nombre de valeurs au sein de l'float: 3.14 = quatre valeurs. Je ne puis ont à parcourir chaque valeur et de le convertir à un personnage.

Quelques problèmes que je vais avoir, est de 1: je ne suis pas sûr si c'est encore possible de déterminer le nombre de valeurs associées à un flotteur. 2: Comment puis-je convertir chaque valeur dans son équivalent de chaîne?

Je suis tombé sur ltid et sprintf. Cependant, ltid ne fait pas partie de la bibliothèque standard C, et je ne suis pas sûr de savoir si ou de ne pas sprintf vais faire ce que je désire.

  • sprintf(str, "%4.2 f", float)
  • Vous voulez probablement sprintf. Vous ne pouvez pas (en général), figure un certain nombre de chiffres -- quelque chose qui est passé comme (par exemple) 1.2 va finir comme quelque chose de l'ordre de 1.99999999999999 (à la précision de la type-mais à virgule flottante binaire ne peut pas représenter 0.2 précisément.
InformationsquelleAutor kubiej21 | 2013-02-04