2012-08-02 92 views
1

所以我正在這個項目中,我必須閱讀CSV文件,其中包含以科學記數法表示的數字。到目前爲止,我所擁有的是讀取每個數字,然後將該數字轉換爲字符串,然後將其轉換爲double使用stringstream,但我不知道這是否是正確的方式來做到這一點。任何建議/建議都會有所幫助!轉換字符串以科學記數法表示浮動和雙重

double temp; 
istringstream in(line); //line is the string which contains the number, ex: 3.30144800e+03 
in >> temp; 
arr[w++] = temp; 

回答

1

您可以將字符串轉換爲雙用std::atof

istringstream in(line); 
double  value(atof(in.str().c_str())); 

或者你可以簡單地流雙出緩衝的...

double value; 
in >> value; 
+2

我會建議'strtod' (或C++ 11'stod'),它們都可以讓你看到整個字符串是否被消耗來驗證沒有解析錯誤。 – 2012-08-02 19:36:30

相關問題