Question

J'ai quelques problèmes en essayant de convertir un double à la chaîne de C. Voici mon code

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

Le problème que j'ai est si un double est transmis en tant que « 10000000 ». Ensuite, la valeur de chaîne étant retournée est 1E + 007

Comment puis-je obtenir la valeur de chaîne comme « 10000000 »

Était-ce utile?

La solution

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

Vous pouvez également envisager d'utiliser pour régler le setprecision nombre de décimales:

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

Autres conseils

#include <iomanip>

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

Vous pouvez également définir la largeur minimale et remplir avec ombles STL IO Manipulateurs, comme:

out.width( 9 );
out.fill( ' ' );
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top