Frage

Ich habe einige Probleme versuchen, einen doppelten zu C ++ Zeichenfolge zu konvertieren. Hier ist mein Code

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

Das Problem, das ich habe, ist, wenn ein Doppel als ‚10000000‘ übergeben wird. Dann wird der String-Wert zurückgegeben wird, ist 1e + 007

Wie kann ich den String-Wert als "10000000"

War es hilfreich?

Lösung

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

Sie auch interessieren könnten setprecision mit der Anzahl der Dezimalstellen festlegen:

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

Andere Tipps

#include <iomanip>

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

Sie können auch die minimale Breite und füllen char mit STL IO-Manipulatoren gesetzt, wie:

out.width( 9 );
out.fill( ' ' );
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top