Conversion float en char

laurent180
Messages postés
72
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
2 novembre 2008
- 4 juin 2003 à 11:20
cs_Chouchou182
Messages postés
252
Date d'inscription
vendredi 13 juin 2003
Statut
Membre
Dernière intervention
25 avril 2011
- 6 oct. 2003 à 16:18
Bonjour a tous,

J'aimerai savoir en c ou c++ comment convertir un float en char? quel sont les fonctions ou un exemple?
merci a vous.
s

7 réponses

cs_payen
Messages postés
252
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
1 mai 2005

4 juin 2003 à 11:45
avec un cast, mais tu vas perdre des donnees

float machin;
char truc;
truc = (char)machin;
0
laurent180
Messages postés
72
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
2 novembre 2008

4 juin 2003 à 12:27
salut,

J'avais deja essayé cet fct mais elle ne va pas
#include
#include <string.h>
void main()
{
float data = 3;
char caract;
caract= data;
cout<<caract;

}
et sa ne me sort pas 3 mais un coeur!!!!
et puis si il y a une virgule dans mon float je dois prendre un tableau de caractère mais la il veut plus compilé!
si tu as une solution.
je suis preneur.
0
cs_payen
Messages postés
252
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
1 mai 2005

4 juin 2003 à 12:34
oui, c'est normal, puisque 3 est le code ASCII du coeur. si tu affiches avec printf("%d",caract), tu auras 3 ...
au fait, pq mettre un float dans un char?
0
laurent180
Messages postés
72
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
2 novembre 2008

4 juin 2003 à 12:49
merci mais ce si ne fct pas si il y a + que 1 chiffre
float data = 3.15;
char caract[4];
caract[4]= (char)data;
printf("%d",caract);
il l'exécute mais c'est du nimporte quoi au printf il me sort: 1245048?? bizarre non et de plus mon tableau et un tab de 4 caract.

Je dois faire sa car en fait j'utilise une basse de donnée et des apisql et la commande sql dois etre en caractère donc je dois concaténé mon ordre sql avec mon float que je dois bien entendu le remetrre en caractère avant ma concaténation.
je sais pas si mon explication est claire.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_kelsey
Messages postés
35
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
11 décembre 2004

11 juin 2003 à 10:25
c'est normal tu as déclaré un tableau de 4 caractéres or le compilateur voit un tableau allant de 0 à 3 ( soit quatres cases) et " caract[4] " n'existe danc pas pour ton compilateur alors il t'affiche n'importe quoi!
0
HCJarod
Messages postés
221
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
11 décembre 2008
1
14 août 2003 à 10:23
Salut, si j'ai bien compris, tu veux convertir un float en une chaine de caractères (et pas faire tenir un float de 32bits (je crois) dans un char de 8bits!!!).
Je te propose un truc un peu tiré par les cheveux mais c'est garantie, ça marche...

tu utilise itoa(int to ascii) pour extraire dans un tableau (dont la taille est le nombre de caractère de ton float + 1 octets pour le caractère null de fin de chaine) la partie entière du float : itoa( ton_float, ton_tableau,10)=> ton_tableau contiant uniquement la partie entière...
tu multiplie ton float par 100 ou 1000 ou 1000000000000 pour récupérer autant de chiffres après la virgule que tu veux. Tu concatène le tout avec une virgule et c'est OK
ça sous entend bien sur une variable temporaire mais bon tu es assez grand je te fais confiance
si je n'ai pas été claire dit le...
a+
0
cs_Chouchou182
Messages postés
252
Date d'inscription
vendredi 13 juin 2003
Statut
Membre
Dernière intervention
25 avril 2011
1
6 oct. 2003 à 16:18
Salut...

Dans <cstdio> :
sprintf(char* chaine_finale, const char* chaine_de_formatage, ...) ;
ex:
float data = 3.0f;
char* caract = (char*)calloc(4,sizeof(char)) ;
sprintf(caract, "%f", data) ;
cout<<caract;

Chouchou182
0