? transformer un float en chaine...

Résolu
etaxi Messages postés 24 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 24 mars 2008 - 12 juil. 2007 à 09:39
etaxi Messages postés 24 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 24 mars 2008 - 13 juil. 2007 à 17:35
Salut à tous;
voilà je suis en train de faire un tout petit prog/ en C sous win32, il s'agit d'une division d'un entier par un autre,
le résultat pourrait-être un float, or pour afficher ce résultat
dans un "control texte", je suis obligé de le transformer en
chaine en appliquant itoa() <si le résultat de la division était un entier> or dans mon cas j'ai un float, Comment faire?
Merci.

8 réponses

etaxi Messages postés 24 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 24 mars 2008
13 juil. 2007 à 17:35
Merci BruNews, cette fois-ci ma petite application
tourne creectement.
@+
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
12 juil. 2007 à 10:04
Faut d'abord passer en float tes nbr si tu veux du float en sortie.

int a, b;
float f;
f = (float) a / (float) b;

sprintf() est le plus simple pour mettre en chaine.

ciao...
BruNews, MVP VC++
0
etaxi Messages postés 24 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 24 mars 2008
12 juil. 2007 à 12:03
GetWindowText(hEdit, szBuf, sizeof(szBuf));
nResult= atof(szBuf);

GetWindowText(hEdit2, szBuf, sizeof(szBuf));
nResult2 = atof(szBuf);

valeur_finale = division(nResult,nResult2);
fin_string += sprintf(szBufFinal, "%f", valeur_finale);
szBufFinal[fin_string] = '\0';
SetWindowText(hResult, _i64toa(szBufFinal, "%f", valeur_finale, szBufFinal, 10));
SetFocus(hEdit);
0
etaxi Messages postés 24 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 24 mars 2008
12 juil. 2007 à 12:11
GetWindowText(hEdit, szBuf, sizeof(szBuf));
nResult= atof(szBuf);
Bon voilà ce qui se passe:

//je saisis un nombre dans un premier "text edit"
GetWindowText(hEdit, szBuf, sizeof(szBuf));

//je le transforme en float
nResult = atof(szBuf);

//je saisis un 2eme nombre dans un 2eme "text edit"
GetWindowText(hEdit2, szBuf, sizeof(szBuf));

//je le transforme aussi en float
nResult2=atofszBuf);
//je fais ma division qui va me donner un float
valeur_finale = division(nResult,nResult2);

//maintenant comment afficher le résultat
//dans un 3eme 'text edit"?
//sachant qu'il faut transformer cette valeur en "alphanumeriqie": char
SetWindowText(hResult, (valeur_finale, szBufFinal, 10));

Merci de ton aide
0

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

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
12 juil. 2007 à 12:31
sprintf(szBufFinal, "%f", valeur_finale);
SetWindowText(hResult, szBufFinal);

où est le prob ???

ciao...
BruNews, MVP VC++
0
etaxi Messages postés 24 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 24 mars 2008
12 juil. 2007 à 16:54
ENCORE MERCI CA MARCHE A MERVEILLE!

NB:je rappelle que je débute en win32,
alors je sollicite toute votre
indulgence.
0
etaxi Messages postés 24 Date d'inscription vendredi 3 mars 2006 Statut Membre Dernière intervention 24 mars 2008
13 juil. 2007 à 12:17
Re;
voilà mon petit programme qui fait les quatre opérations
élémentaire (+-*/) fonctionne, mais je n'arrive pas à
taper les réels dans ma case de saisie "NB:ce n'est pas un pb de clavier"
je rappelle que j'utilise un "control edit text" élémentaire
de type:

static HWND hEdit;
hEdit = CreateWindow("EDIT", "",
WS_CHILD|WS_VISIBLE|ES_CENTER|ES_NUMBER|WS_BORDER,
10, 10, 120, 20, hWnd, (HMENU)-1, hInstance, 0);
alors comment faire pour que cette case accepte les réels?
Merci
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 juil. 2007 à 16:44
Enlève le style ES_NUMBER et tu devras (par sous classement du EDIT) controler toi même ce qui se passe dedans.

Exemple ici:
http://www.cppfrance.com/code.aspx?ID=35788

ciao...
BruNews, MVP VC++
0
Rejoignez-nous