C++ 字符串精确 float

标签 c++ string file

我有一个包含数字读数的文件(例如 5.513208E-05/1.146383E-05) 我读取该文件并将条目存储在临时字符串中。 之后,我将临时字符串转换为浮点变量(我将其存储在多维数组中)。 我使用下面的代码进行转换。

getline(infile, temporary_string, ',');

Array[i][0] = ::atof(temporary_string.c_str());

getline(infile, temporary_string);

Array[i][1] = ::atof(temporary_string.c_str());

问题是当我将 float 打印到屏幕时

5.51321e-05 1.14638e-05 代替 5.513208E-05 1.146383E-05

如何获得存储的精确数字???

最佳答案

读取或转换字符串时不指定精度。相反,您在输出值时设置精度:

std::cout << std::setprecision(3) << 1.2345 << '\n';

上面将产生以下输出:

1.23

参见例如this reference .

关于C++ 字符串精确 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17470338/

相关文章:

c++ - 是否可以使用 CRTP 模拟静态多态性中的纯虚函数?

c - 如何完成 K&R 练习 2-4?

java - 判断两个文件是否存储相同的内容

php - mysql如何获取名称大于 '<name>'的下一条记录

针对字节码逆向工程的java常量

asp.net - 在 UpdatePanel 中使用 ASP.NET FileUpload 控件时出现问题?

Java:部分路径存在,文件的部分名称

c++ - 更新集合中的指针以指向 C++ 中具有不同属性的等效对象?

c++ - 按 F10 导致 WM_SETCURSOR 消息

c++ - 使用 std::count 计算一对数组中的相等值