0
我有文本文件包含精度高達12位小數的數字。atof()返回浮動而不是雙重
所以要數加載到一個C++ VEC我寫這
void txt2vec(const std::string& file, std::vector<double>& data)
{
std::string line;
std::ifstream myfile(file);
if (myfile.is_open())
{
while (getline (myfile,line))
{
std::cout << atof(line.c_str()) << std::endl;
//data.push_back(atof(line.c_str()));
}
myfile.close();
}
}
atof
應該返回一個雙但我正在逐漸浮
這是程序的輸出
-0.0340206
-0.0873645
0.0789533
0.115022
0.0809852
0.118469
0.113328
0.112746
-0.0331071
它應該是這樣的
-0.0340205617249
-0.0873644948006
0.078953281045
0.115022487938
0.0809852406383
0.118468873203
0.11332821846
0.112745501101
-0.0331071354449
'ostream :: operator <<(double)'默認打印6位精度。另見'std :: setprecision' –
不,你沒有得到'float'結果,你會得到一個'double'結果。 –
這不是問題,但是你真的需要'std :: endl'做的額外的東西嗎? ''\ n''結束一行。 –