2009-05-14 20 views
10

Mam pewne problemy podczas próby konwersji ciągu podwójnego na ciąg C++. Oto mój kodKonwertowanie podwójnego na ciąg w C++

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

Mam problem, jeśli podwójne jest przekazywane jako "10000000". Następnie wartość ciąg zwracane jest 1e + 007

Jak mogę uzyskać wartość ciągu jako „10000000”

+12

Kilka przykładów z następujących: http://www.codeproject.com/KB/recipes/Tokenizer.aspx Są bardzo wydajne i nieco eleganckie. –

Odpowiedz

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

Można również rozważyć użycie setprecision ustawić liczbę cyfr po przecinku:

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

Dzięki .. to działało świetnie –

8
#include <iomanip> 

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

można również ustawić minimalną szerokość i wypełnić char manipulatory STL IO, jak:

 
out.width(9); 
out.fill(' '); 
Powiązane problemy