2009-05-14 22 views
10

Tengo algunos problemas al intentar convertir una cadena de doble a C++. Aquí está mi códigoConversión de doble a cadena en C++

std::string doubleToString(double val) 
{ 
    std::ostringstream out; 
    out << val; 
    return out.str(); 
} 

El problema que tengo es si un doble se está pasando como '10000000'. A continuación, el valor de cadena que se devuelve es 1e + 007

¿Cómo puedo obtener el valor de cadena como "10000000"

+12

¿Qué tal algunos de los ejemplos de los siguientes: http://www.codeproject.com/KB/recipes/Tokenizer.aspx Son muy eficientes y algo elegantes. –

Respuesta

14
#include <iomanip> 
using namespace std; 
// ... 
out << fixed << val; 
// ... 

También puede considerar el uso de setprecision para establecer el número de dígitos decimales:

out << fixed << setprecision(2) << val; 
+0

Gracias ... esto funcionó muy bien –

8
#include <iomanip> 

std::string doubleToString(double val) 
{ 
    std::ostringstream out; 
    out << std::fixed << val; 
    return out.str(); 
} 
2

también puede ajustar el ancho mínimo y llenar con carbón manipuladores STL IO, como:

 
out.width(9); 
out.fill(' ');