将用科学表示法表示的字符串转换为浮点和双精度

Convert string represented in scientific notation to float and double

本文关键字:表示 双精度 转换 字符串      更新时间:2023-10-16

所以我正在进行这个项目,我必须读取一个CSV文件,该文件包含用科学符号表示的数字。到目前为止,我所做的是读取每个数字,然后将该数字转换为字符串,然后用字符串流将其转换为双精度,但我不确定这是否是正确的方法。任何建议/建议都会有所帮助!

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

您可以使用std::atof 将字符串转换为双精度

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

或者,您可以简单地将替身从缓冲区中流出。。。

double value;
in >> value;