2009-05-14 8 views
10

ダブルをC++文字列に変換する際に問題が発生しています。私のコードはここにありますDoubleをC++で文字列に変換する

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

私が持っている問題は、倍数が '10000000'として渡されている場合です。返される文字列の値がどのように私は「10000000」

+12

いくつかの例は、次のとおりです。http://www.codeproject.com/KB/recipes/Tokenizer.aspx非常に効率的でやや優雅です。 –

答えて

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

として文字列値を1E + 007

得ることができますされて、あなたはまた、小数点以下の桁数を設定するsetprecisionを使用して検討するかもしれない:

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

ありがとう..これは素晴らしい仕事 –

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(' '); 
関連する問題