Conversion Double à cordes en C ++
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 »
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