Newsgroup: it.comp.lang.c++
Titolo: consigli sulla conversione da float a stringa...

Ciao a tutti,
ho sperimentato diversi modi per convertire in c++ un numero reale in un 
oggetto di tipo stringa, per ora la soluzione migliore che ho trovato 
sfrutta il comando "sprintf" del C:
//------------------------------------------------------
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
//-- include di file utente
//-- pre-Dichiarazione delle funazioni
//-- Corpo della programma
int main(int argc, char *argv[])
{
    char buff[30];
    string risultato;
    sprintf(buff,"%3.15f", 1.572757843657862662);
    risultato = (string) buff;
    cout << risultato << endl;
    system("PAUSE");	
    return 0;
}
//------------------------------------------------------
Output:
1.572757843657863
Premere un tasto per continuare...
//------------------------------------------------------
Che tra l'altro mi permette anche di decidere quanti decimali portarmi 
dietro.
Un'altra soluzione che ho sperimentato è la seguente (tutta C++):
//------------------------------------------------------
#include <iostream>
#include <stdlib.h>
#include <string>
#include <sstream>
 using namespace std;
 int main(int argc, char *argv[])
{
    stringstream buff;
    string risultato;
    int intero = 123;
    buff << 12.34324435;
    buff >> risultato;
    cout << risultato << endl;
 system("PAUSE");
    return 0;
}
//-------------------------------------------------
Output:
12.3432
Premere un tasto per continuare...
 -----------------------------------------------------
che però mi fa perdere tutte queste cifre decimali....
Insomma, molti dicono che non è "bene" usare il C all'interno del C++, ma a 
me sembra che almeno in questo caso semplifica di molto (un esempio di chi 
sconsiglia e il libro di Stroustrup).
Mi sapete consigliare o suggerire una funzione di libreria del c++ che mi è 
sfuggita e che svolge la stessa funzione.
Cosa ne pensate dell'uso dello stile C in C++???
Grazie e ciao a tutti.
Checco

Alcuni compilatori, fra i quali non ci sono il gcc e neppure il compilatore
della microsoft, supportano la funzione ftoa() in stdlib.h ma non e' ne'
standard c ne' posix. Tutti consigliano di arrangiarsi con la sprintf.
ciao,
Nids
p.s.: cercando un po' in giro ho trovato il codice sorgente della ftoa ed ho
scoperto che al suo interno usa la sprintf quindi...

In un newsgroup in inglese mi hanno proposto una nuova soluzione per il 
problema della precisione dei decimani nella conversione, e mi è piaciuta 
molto, anche perchè è tutta C++ e perche ho imparato una cosa nuova sugli 
stream... :)
eccola:
#include <iostream>
#include <stdlib.h>
#include <string>
#include <sstream>
#include <iomanip>   // questa è importante per la soluzione!!!!
using namespace std;
int main(int argc, char *argv[])
{
	string risultato;
    	stringstream str;
    	str << setprecision(15) << 1.572757843657862662;
    	str >> risultato;
    	cout << risultato << endl;
	system("PAUSE");	
    	return 0;
}
----------------------------------
Output:
1.572757843657863
Premere un tasto per continuare...
----------------------------------
Esattamente come la sprintf
Oltre al manipolatore setprecision ho trovato nei libro molti altri 
manipolatori molto utili per la formattazione dell'output con COUT.
Il problema prima era che non sapevo che esistessero e che si chiamano 
"manipolatori". ;)
Checco.


 "manipolatori". ;)
ed io pirla che ho cannato che invece di dirti manipolatori ti ho detto
modificatori :-p dio mio ma le cose le so in testa e poi non riesco a dirle
giuste a nessuno ... uff ...
ciao

 ha scritto nel messaggio
news:oprs2vxs...@news.tin.it...

http://www.boost.org/libs/conversion/lexical_cast.htm
ciao

Ti ringrazio, ma nn volevo usare librerie oltre quelle fornite con il g++. 
Non è un problema di progetto, ma semplicemente di studio del linguaggio 
C++. Quando avrò conoscenze sufficenti del linguaggio... allora vi 
tormenterò per il progetto che dovrò fare ;) ;) ;)
Grazie.
Checco


 tormenterò per il progetto che dovrò fare ;) ;) ;)
prima di tormentarci ti prego di leggerti questo ed applicarlo e' solo un
consiglio per rendere leggibile i tuoi interventi e non ammorbarci con
testoo inutile
http://www.freewebz.com/iosononiubbo/iosononiubbo.htm#quotare
spero ti sia utile ciao