2

当浮点数为整数时,如何将浮点数转换为字符串并添加 2 位小数。目前我正在使用以下,但对于整数,我想添加 .00。我需要为此编写自己的例程吗?

float floatingNumber = 1.00;
string string;
ostringstream stream;

stream << floatingNumber;
string += stream.str(); // result is 1 not 1.00
4

2 回答 2

7

您应该手动设置精度并使用标志,它允许您使用fixed notation

设置精度 固定

stream << std::fixed << std::setprecision(2) << floatingNumber;
于 2013-05-16T08:36:13.210 回答
1

如果您使用的是 c++11,则可以使用std::to_string()将浮点数转换为 std::string

float f(0.5f);
std::string str = std::to_string(f);

使用 auto 也是一样的:

auto f(0.5f); // f is a float
auto str = std::to_string(f); // str is a std::string

但是,您必须手动处理精度。

于 2013-05-17T09:18:52.797 回答