2009-05-14 2 views
10

У меня возникли проблемы с преобразованием двойной строки в C++. Вот мой кодПреобразование Double to String в C++

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

Проблема у меня есть, если в качестве «10000000» передается двойной. Затем строковое значение возвращается в 1e + 007

Как я могу получить значение строки, как «10000000»

+12

Как насчет некоторых из следующих примеров: http://www.codeproject.com/KB/recipes/Tokenizer.aspx Они очень эффективны и несколько элегантны. – 2010-11-02 05:04:12

ответ

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

Вы могли бы также рассмотреть возможность использования setprecision установить число десятичных цифр:

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

Спасибо .. это отлично работало – 2009-05-14 16:12:28

8
#include <iomanip> 

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

Вы также можете установить минимальную ширину и заполнить полукокса с STL IO манипуляторов, например:

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