46
在C++ 11中,當給定輸入值float
或double
的輸入值時,std :: to_string默認爲6位小數位。改變這種精度的建議或最優雅的方法是什麼?轉換浮點值時設置std :: to_string的精度
在C++ 11中,當給定輸入值float
或double
的輸入值時,std :: to_string默認爲6位小數位。改變這種精度的建議或最優雅的方法是什麼?轉換浮點值時設置std :: to_string的精度
有沒有辦法通過to_string()
改變精度,但setprecision
IO機械手可以用來代替:
#include <sstream>
#include <iomanip>
template <typename T>
std::string to_string_with_precision(const T a_value, const int n = 6)
{
std::ostringstream out;
out << std::setprecision(n) << a_value;
return out.str();
}
不錯,但它會是偉大的,是能夠做到這一點,而無需創建一個臨時字符串。 :特別是在一個非常非常緊密的內部循環中。 –
是不是通過返回的rval隱式移動的內部字符串? – Julius
'#包括' –
Jonny