[Risolto] [C++] cout: massima precisione per i double
Inviato: martedì 15 aprile 2014, 11:40
Ciao a tutti.
Sto avendo un problema dovuto al fatto che cout mi tronca, nello stampare l'output, il numero di cifre di una variabile di tipo double.
Io devo mantenere un numero "elevato" di cifre dopo la virgola, ma quando il numero di cifre prima della virgola aumenta ed arriva a 5... cout non mi stampa a video le cifre dopo la virgola.
Questo troncamento per me è una catastrofe e devo risolverlo entro pochissimo tempo.
Sto guardando alcune soluzioni online, ma tutte hanno una pseudo soluzione, nel senso che impostano a qualche valore "alto" ma fissato un parametro tipo cout.precision o cose del genere.
Io vorrei capire se esiste la possibilità di far stampare tutte le cifre dopo la virgola di una variabile di tipo double.
Dal momento che non sto risolvendo e che ho una certa "urgenza" nel trovare la soluzione, mi affido al vostro aiuto
Oltre alla modifica della precisione di un "cout" usato nudo e crudo, mi servirebbe fare la stessa cosa sull'overload dell'opeartore << di una classe, di cui lascio un esempio di codice:
Questa classe densHandle si occupa dei calcoli e della stampa a video dei valori delle densità e viene importata nel programma principale.
Non so se cambia qualcosa. Nel senso che non se l'impostazione dei parametri per la precisione nella stampa possa essere fatta direttamente nel main o vada fatta all'interno della classe.
Grazie in anticipo
Sto avendo un problema dovuto al fatto che cout mi tronca, nello stampare l'output, il numero di cifre di una variabile di tipo double.
Io devo mantenere un numero "elevato" di cifre dopo la virgola, ma quando il numero di cifre prima della virgola aumenta ed arriva a 5... cout non mi stampa a video le cifre dopo la virgola.
Questo troncamento per me è una catastrofe e devo risolverlo entro pochissimo tempo.
Sto guardando alcune soluzioni online, ma tutte hanno una pseudo soluzione, nel senso che impostano a qualche valore "alto" ma fissato un parametro tipo cout.precision o cose del genere.
Io vorrei capire se esiste la possibilità di far stampare tutte le cifre dopo la virgola di una variabile di tipo double.
Dal momento che non sto risolvendo e che ho una certa "urgenza" nel trovare la soluzione, mi affido al vostro aiuto
Oltre alla modifica della precisione di un "cout" usato nudo e crudo, mi servirebbe fare la stessa cosa sull'overload dell'opeartore << di una classe, di cui lascio un esempio di codice:
Codice: Seleziona tutto
ostream &operator<<( ostream &output, const densHandle &foo) {
densHandle::ldVec::const_iterator it1;
densHandle::ulVec::const_iterator it2 = ++foo.crNormVect.begin();
for(it1=++foo.crDensAndTrapped.begin();
it1!=--foo.crDensAndTrapped.end();
++it1) {
cout << *it1 / *it2 << ",";
++it2;
} cout << *it1;
return output;
}Non so se cambia qualcosa. Nel senso che non se l'impostazione dei parametri per la precisione nella stampa possa essere fatta direttamente nel main o vada fatta all'interno della classe.
Grazie in anticipo