我使用下面的代碼輸入字符串轉換爲浮動:istringstream不正確解析
template <typename T>
T parseString(const std::string &s)
{
T val;
std::istringstream is(s.c_str());
is >> val;
return val;
}
float x = parseString<float>("0.1");
std::cout << std::setprecision(12) << x;
當我打印X我得到「0.10000000149」,這顯然是錯誤的。有什麼想法嗎?
考慮'std :: stof'。這絕不是「明顯錯誤」。浮點數字並不準確。 C++也沒有任何類型的'decimal'類型。 – chris