我正在從CSV讀取,逐行並標記每個逗號分隔值。每個標記都是一個字符串類型。我將它放入float類型的向量中。在下面的例子中,如果例如csv中的值是「0.08」,* beg =「0.08」,但是在矢量v中它是「0.079999998」設置精度當push_back在向量
有沒有辦法,我可以設置精度矢量到3位小數或其他東西。
例如:
string line;
boost::char_separator<char> sep(",");
typedef boost::tokenizer< boost::char_separator<char> > t_tokenizer;
ifstream myfile (fileName);
if(myfile.is_open())
{
while (myfile.good())
{
getline (myfile,line);
t_tokenizer tok(line, sep);
for (t_tokenizer::iterator beg = tok.begin(); beg != tok.end(); ++beg)
{
string temp = *beg;
this->v.push_back(::atof(temp.c_str()));
}
*「但是在矢量v中是」0.079999998「」* - 你怎麼知道? –
在調試時查看矢量。 – Lexicon