2009-05-14 3 views
10

Je rencontre des problèmes lors de la conversion d'une chaîne double en chaîne C++. Voici mon codeConversion de chaîne double en chaîne en C++

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

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

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

+12

Que diriez-vous de certains des exemples de ce qui suit: http://www.codeproject.com/KB/recipes/Tokenizer.aspx Ils sont très efficaces et assez élégant. –

Répondre

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

Vous pouvez également envisager d'utiliser setprecision pour définir le nombre de chiffres décimaux:

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

Merci .. cela a bien fonctionné –

8
#include <iomanip> 

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

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

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