将科学计数法表示的字符串转换为float和double

时间:2012-08-02 18:10:19

标签: c++ data-conversion

所以我正在研究这个项目,我必须在一个CSV文件中读取,该文件包含用科学记数法表示的数字。到目前为止,我所拥有的是读取每个数字然后将该数字转换为字符串,然后将其转换为使用stringstream的double,但我不确定这是否是正确的方法。任何建议/建议都会有所帮助!

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

1 个答案:

答案 0 :(得分:1)

您可以使用std::atof

将字符串转换为double
istringstream in(line);
double        value(atof(in.str().c_str()));

或者你可以简单地将双倍流出缓冲区......

double value;
in >> value;