2017-07-26 76 views
-1

我有一個小功能,雙轉換到的std :: string:如何在將科學記數法追加到ostringstream時關閉它?

std::string convertDoubleToString(double value) { 
    std::ostringstream ostr; 
    ostr << value; 
    return ostr.str(); 
} 

我不想在這裏用科學記數法。我如何在這種情況下做到這一點?我可以使用std :: fixed或cout.setprecision,但它僅適用於std :: cout,但是如何將它用於我的情況?

+3

是什麼讓你覺得它僅適用於'cout'?你試過了嗎? – NathanOliver

+2

流是一個流是一個流......並且所有流基本上與[操縱器](http://en.cppreference.com/w/cpp/io/manip)相同。 –

+2

順便說一句,你可能想看看['std :: to_string'](http://en.cppreference.com/w/cpp/string/basic_string/to_string)。 –

回答

1

使用std::fixed機械手是這樣的:

ostr << std::fixed << value; 
+0

不知道它適用於所有流。以這種方式工作:* ostr << std :: fixed << std :: setprecision(10)<< value; * - 沒有setprecision它也返回「short」值:) – JavaRunner