Pregunta

Estoy teniendo algunos problemas que tratan de convertir una doble cadena de C ++. Aquí está mi código

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

El problema que tengo es que si un doble está siendo transferido 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"

¿Fue útil?

Solución

#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;

Otros consejos

#include <iomanip>

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

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

out.width( 9 );
out.fill( ' ' );
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top