簡體   English   中英

從CSV C ++中提取雙精度值時出現意外結果

[英]Unexpected result when extracting double values from CSV C++

我在使用C ++ Qt讀取.csv文件時遇到問題。 這是CSV格式:

0.2345;0.567;1.2456;...

這是讀取CSV文件的代碼:

void CSV::readCSV(std::istream &input, std::vector<double> &output) {
  std::string csvElement;
  while (std::getline(input, csvElement, ';')) {
    output.push_back(stod(csvElement));
  }
}

並輸出:

0.0000 0.0000 1.0000

輸出錯誤。 您能幫我解決這個問題嗎?

我懷疑代碼中的某個地方正在將值轉換為某種整數類型,然后將其打印出來或轉換回雙精度型。 類似於:

std::cout << std::fixed << std::setprecision(4);
for (auto el : vec){
    int i = el;
    double d = i;
    std::cout << "Double: " << el << " Integer: " << i << " Double again: " << d << std::endl;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM