Convertir un float en string en C++

Convertir un float en string en C++ - C++ - Programmation

Marsh Posté le 13-05-2003 à 15:34:22    

Je souhaite savoir comment faire pour convertir un float en string en C++ et connaitre le "include" correspondant (math.h ?).

Reply

Marsh Posté le 13-05-2003 à 15:34:22   

Reply

Marsh Posté le 13-05-2003 à 15:43:56    

sprintf, ou snprintf si dispo (le second est mieux)
dans stdio.h
 
edit: zut j'avais pas vu que c'était C++ et pas C :sweat: ça dépend quel string, Borland, STL, MFC ?


Message édité par antp le 13-05-2003 à 15:45:04

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 13-05-2003 à 15:44:22    

Si tu parles des CString
CString str.Format(_T("%.2f" ), float_machin);


Message édité par polo021 le 13-05-2003 à 15:44:56
Reply

Marsh Posté le 13-05-2003 à 15:46:39    

va t en ANTP    [:tomtom75]  
 

Code :
  1. #include <sstream>
  2. #include <string>
  3. using namespace std;
  4. string float2string(float f)
  5. {
  6.   ostringstream os;
  7.   os << f;
  8.   return os.str()
  9. }


 
et ça marche pour tous les types de bases


Message édité par Taz le 13-05-2003 à 15:47:09
Reply

Marsh Posté le 13-05-2003 à 15:47:57    

++Taz a écrit :

va t en ANTP


 
j'avais lu trop vite [:spamafote]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 13-05-2003 à 15:48:45    

antp a écrit :


 
j'avais lu trop vite [:spamafote]


[:plusun]

Reply

Marsh Posté le 13-05-2003 à 15:55:19    

++Taz a écrit :

va t en ANTP    [:tomtom75]  
 

Code :
  1. #include <sstream>
  2. #include <string>
  3. using namespace std;
  4. string float2string(float f)
  5. {
  6.   ostringstream os;
  7.   os << f;
  8.   return os.str()
  9. }


 
et ça marche pour tous les types de bases


c'est du C++ sous Linux, je ne connais pas le type des Strings.
 
#include <sstream> ne passe pas !  :(

Reply

Marsh Posté le 13-05-2003 à 16:06:21    

quel compilo? et quelle version surtout?


Message édité par Taz le 13-05-2003 à 16:07:42
Reply

Marsh Posté le 13-05-2003 à 16:12:26    

Le compilateur est g++

Reply

Marsh Posté le 13-05-2003 à 16:13:49    

polo021 a écrit :

Si tu parles des CString
CString str.Format(_T("%.2f" ), float_machin);


il sert à quoi le _T() ??
parce que moi je fais juste monStringRouge.Format("%0.2f", floatmécoulepas) et ca marche...
 
 
Attention /!\ : http://banguy.free.fr/smileys/bide.gif

Reply

Marsh Posté le 13-05-2003 à 16:13:49   

Reply

Marsh Posté le 13-05-2003 à 16:24:45    

backdafuckup a écrit :


il sert à quoi le _T() ??
parce que moi je fais juste monStringRouge.Format("%0.2f", floatmécoulepas) et ca marche...


je l'ai trouve comme ca dans l'MSDN a lors je me pose pas de questions [:spamafote]

Reply

Marsh Posté le 13-05-2003 à 16:40:25    

LMF a écrit :

Le compilateur est g++

et la version?

Reply

Marsh Posté le 13-05-2003 à 16:45:32    

backdafuckup a écrit :


il sert à quoi le _T() ??
parce que moi je fais juste monStringRouge.Format("%0.2f", floatmécoulepas) et ca marche...


C'est une macro des MFC qui indique que le texte auquel elle se rapporte est en unicode (dans le cas ou un #define UNICODE existe dans le projet)


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-05-2003 à 16:46:08    

polo021 a écrit :


je l'ai trouve comme ca dans l'MSDN a lors je me pose pas de questions [:spamafote]


tu devrais, parce que t'en auras besoin le jour ou tu développeras des programmes localisés


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-05-2003 à 16:51:10    

Harkonnen a écrit :


tu devrais, parce que t'en auras besoin le jour ou tu développeras des programmes localisés


Je crois que je viens de comprendre... alors parce que je developpe pour win CE, il me faut le _T sinon il ne le faudrait pas? C'est bien ca?
EDIT : non en fait j'ai rien compris je crois  :sweat:


Message édité par polo021 le 13-05-2003 à 16:52:00
Reply

Marsh Posté le 13-05-2003 à 16:54:28    

polo021 a écrit :


Je crois que je viens de comprendre... alors parce que je developpe pour win CE, il me faut le _T sinon il ne le faudrait pas? C'est bien ca?
EDIT : non en fait j'ai rien compris je crois  :sweat:  


 
localisé = multilangage


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Reply

Marsh Posté le 13-05-2003 à 16:56:46    

++Taz a écrit :

et la version?


je ne sais pas, on fait comment pour la savoir (désole d'etre un peu lourd  :( )

Reply

Marsh Posté le 13-05-2003 à 17:01:59    

Tetragrammaton IHVH a écrit :


 
localisé = multilangage


moi aussi je suis un peu lourd
[:toto le hros]
 
genre de l'asm dans du c ou du cobol dans ada??

Reply

Marsh Posté le 13-05-2003 à 17:02:15    

g++ --version

Reply

Marsh Posté le 13-05-2003 à 17:02:28    

LMF a écrit :


je ne sais pas, on fait comment pour la savoir (désole d'etre un peu lourd  :( )


te laisse pas faire !

Reply

Marsh Posté le 13-05-2003 à 17:03:34    

polo021 a écrit :


moi aussi je suis un peu lourd
[:toto le hros]
 
genre de l'asm dans du c ou du cobol dans ada??
 

euh, tu le fais expres la ou quoi ? :heink:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-05-2003 à 17:04:54    

Harkonnen a écrit :

euh, tu le fais expres la ou quoi ? :heink:


non. :(  
vous entendez quoi par multilangage :??:

Reply

Marsh Posté le 13-05-2003 à 17:06:22    

multilingue

Reply

Marsh Posté le 13-05-2003 à 17:10:17    

t'as compris qqchose toi backdafuckup?
 
je vois pas le rapport la!

Reply

Marsh Posté le 13-05-2003 à 17:11:25    

:heink: prenez un dictionnaire

Reply

Marsh Posté le 13-05-2003 à 17:13:00    

polo021 a écrit :

t'as compris qqchose toi backdafuckup?
 
je vois pas le rapport la!


Ben non...
Moi j'avais compris comme toi, mais la je suis perdu :(

Reply

Marsh Posté le 13-05-2003 à 17:14:31    

polyglotte (version grecque là

Reply

Marsh Posté le 13-05-2003 à 17:14:56    

moi aussi je suis perdu. deja il faudrait preciser si vous parler de multilingue ds le sens plusieurs langage...de programmation(cfr ma remarque plus haut cobol-ada) ou alors plusieurs langues(anglais, francais, italien,...)  
 
et dans tous les cas, je vois toujours pas le rapport avec :

Citation :

tu devrais, parce que t'en auras besoin le jour ou tu développeras des programmes localisés

:sweat:

Reply

Marsh Posté le 13-05-2003 à 17:15:55    

++Taz a écrit :

polyglotte (version grecque là


Oui, la maintenant on a compris, mais au départ, je sais plus qui a dit multilangage, ce qui, pour des gens qui ont des claviers entre les doigts, interprètent logiquement comme : "programme réalisé dans plusieurs langages de programmation"...
 
C'est vous qui devriez prendre un dictionnaire...[:spamafote]
 
 
edit: polo aka ptit homme> maintenant c'est clair, (cf polyglotte), ils parlent de plusieurs langues (anglais, allemand, tchèque, russo-polonais, afghan, etc...)


Message édité par backdafuckup le 13-05-2003 à 17:17:04
Reply

Marsh Posté le 13-05-2003 à 17:16:41    

localisé c'est l'angliscisme pour dire internationalisé

Reply

Marsh Posté le 13-05-2003 à 17:17:19    

tetra    [:klemix]

Reply

Marsh Posté le 13-05-2003 à 17:18:21    

++Taz a écrit :

localisé c'est l'angliscisme pour dire internationalisé


Ben je suis désolé, mais moi on me dit localisé, j'ai pas le mot "internationalisé" qui me vient à l'esprit... Je sais pas si c'est un tort, mais bon...
 
En anglais, localized veut dire internationalisé ? Ou y a t il un rapport entre les deux ?

Reply

Marsh Posté le 13-05-2003 à 17:20:22    

++Taz a écrit :

localisé c'est l'angliscisme pour dire internationalisé


oui mais comment on peut comprendre nous aussi avec tous ces quiproco et sous-entendus. :fou:  
 
Donc pourquoi est ce que je devrait preter une attention quelconque  a "_T" au cas ou je developperais pour l'international?
Parce que l'air de rien c'est un peu ce que je fais, donc ca m'interesse :pt1cable:

Reply

Marsh Posté le 13-05-2003 à 17:22:53    

locale à plusieurs traduction, mais localisation c'est pas français. on dit intertionalisé en Français
 
locale => international
 
je sais ça fait tres faut amis, mais c'est une question de mentalité
 
l'américain localise son programme pour de bougnoules qui parlent pas le "backdafuckup". Le Français internationalise son programme pour le rendre accessible au plus grand nombre

Reply

Marsh Posté le 13-05-2003 à 17:34:49    

L'intérêt de mettre des "_T" (ou des "TEXT" ) lorsque tu déclares des chaînes de caractères est que si tu as défini la macro "UNICODE" alors tes chaînes seront en UNICODE. Le code de la macro "TEXT" (similaire à la macro "_T" ) doit être un truc dans le genre :

Code :
  1. #ifdef UNICODE
  2. #define TEXT(quote) L##quote
  3. #else
  4. #define TEXT(quote) quote
  5. #endif


 
C'est pour ça également qu'il faut utiliser des LPTSTR, des TCHARs et autres petites joyeusetés.


---------------
each day I don't die is cheating
Reply

Marsh Posté le 13-05-2003 à 22:30:32    

polo021 a écrit :


Donc pourquoi est ce que je devrait preter une attention quelconque  a "_T" au cas ou je developperais pour l'international?
Parce que l'air de rien c'est un peu ce que je fais, donc ca m'interesse :pt1cable:  


Parce que cette macro assure que la chaine qui suit est en Unicode,  où les caractères sont codés sur 16 bits, au lieu de 8 pour le format ASCII standard. Ce qui peut se réveler très utile dans le cas d'alphabets assez fournis.
De plus, tous les systèmes à noyau NT supportent nativement l'Unicode. Tous les toolkits modernes (QT, .NET, etc...) codent leurs chaines nativement en Unicode. Y'a vraiment que les MFC pour ne pas le faire (est-ce surprenant ? :sarcastic:)


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-05-2003 à 22:39:45    

Harkonnen a écrit :

Y'a vraiment que les MFC pour ne pas le faire (est-ce surprenant ? :sarcastic:)


 
non y a la VCL aussi (enfin, y a un gars qui s'est amuser à refaire des classes pour la majorité des trucs pour supporter l'Unicode)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 13-05-2003 à 22:41:47    

antp a écrit :


 
non y a la VCL aussi  


très juste, je me fais suffisamment chier au boulot avec ça d'ailleurs !


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-05-2003 à 22:43:42    

En Delphi c'est facile à contourner avec ça :  
http://home.ccci.org/wolbrink/tnt/ [...] ntrols.htm
En Builder ça doit marcher aussi.
J'ai utilisé ça pour Ant Renamer pour supporter les noms de fichiers unicode.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 14-05-2003 à 02:00:02    

Harkonnen a écrit :


Parce que cette macro assure que la chaine qui suit est en Unicode,  où les caractères sont codés sur 16 bits, au lieu de 8 pour le format ASCII standard. Ce qui peut se réveler très utile dans le cas d'alphabets assez fournis.
De plus, tous les systèmes à noyau NT supportent nativement l'Unicode. Tous les toolkits modernes (QT, .NET, etc...) codent leurs chaines nativement en Unicode. Y'a vraiment que les MFC pour ne pas le faire (est-ce surprenant ? :sarcastic:)


Elle n'assure pas que la chaîne soit en UNICODE... C'est pas tout à fait ça.  
La macro est différente selon que tu compiles "pour" unicode ou pas:
- en UNICODE, elle rajoute le L devant tes chaînes de caractères.
- en normal, elle ne fait strictement rien!
 
Tout le monde utilise toujours cette macro, mais elle ne sert uniquement que si tu compiles avec #define _UNICODE...


Message édité par konar_spreme le 14-05-2003 à 02:03:47
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed