将浮点数四舍五入为2位小数,将其写入文本文件

Rounding a float number to 2 decimals to write it to a text file

本文关键字:文本 文件 小数 浮点数 四舍五入 2位      更新时间:2023-10-16

我正在做一个学校项目,我必须在文本文件中写一个浮点数。问题是,我只想把最多2位小数的浮点数写入文件。我在网上搜索了很多,但只找到了流的"setprecision"函数。

我不能这样做,因为我不想打印它,但我想把它写到一个只有2个小数的文件中。因此,我必须首先将浮点数转换为相同的数字,但只有2个小数,然后将其放入一个字符串(已经包含其他字符)中。然后我将该字符串写入输出文件。

我在"流"的描述中发现了一种方法"精度",但我认为它不适用于我想要做的事情。(http://www.cplusplus.com/reference/fstream/ofstream/)

有人知道一个函数是谁做的吗?或者知道这样做的方式吗?

谢谢你的帮助!

我不能这样做,因为我不想打印它,但我想把它写到一个只有2个小数的文件中。

鸵鸟不仅仅是用来印刷的。使用ofstream可以做与使用cout相同的事情。

std::ofstream fout("out.txt");
fout << std::setprecision(2) << 1.23456;

这个函数生成一个字符串,其中包含价格、文章名称和我想要的其他信息。函数返回该字符串,然后我将该字符串写入输出文件

您可以通过向函数传递一个ostream引用来编写输出,而不是返回一个字符串。您也可以让函数在将浮点值写入字符串时进行格式化。Ostreams不仅仅用于打印或写入文件:

std::stringstream ss;
ss << std::setprecision(2) << 1.23456;
std::string s = ss.str();