SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: rompecabezas en Lunes 1 de Febrero de 2010, 11:24

Título: problema con ios_base::precision()
Publicado por: rompecabezas en Lunes 1 de Febrero de 2010, 11:24
Hola

intento cambiar la precision de la cantidad guardada en <string miValor> a <int nCifras> cifras significativas

double val;
val = atof(miValor.c_str());
ostringstream conv;
conv.setf(ios::scientific,ios::floatfield); // notacion
conv.precision(nCifras);
conv<<val;
miValor= conv.str();

compila, y redondea, el problema es que me gustaria que al final del redondeo la notacion fuese la misma que anteriormente (llamemosle oldFlag), ma gustaria hacer algo asi:

if(oldFlag == fixed)
        conv.setf(ios::fixed,ios::floatfield);
else if(oldFlag == scientific)
        conv.setf(ios::scientific,ios::floatfield);

alguna genial idea para hacer esto?

gracias :)