c ++在float中输入并转换为字符串

时间:2015-03-06 17:27:49

标签: c++

我想从用户那里获取只有两个小数点(999.99)的浮点输入并将其转换为字符串

float amount;
cout << "Please enter the amount:";
cin.ignore();
cin >> amount;
string Price = std::to_string(amount);

此代码的输出为999.989990

2 个答案:

答案 0 :(得分:4)

to_string不允许您指定要格式化的小数位数。 I / O流确实:

#include <sstream>
#include <iomanip>

std::stringstream ss;
ss << std::fixed << std::setprecision(2) << amount;
std::string Price = ss.str();

如果需要准确表示十进制值,则不能使用二进制float类型。也许您可以乘以100,将价格表示为精确整数的便士。

答案 1 :(得分:0)

如果要将数字四舍五入为两位小数,可以尝试:

amount = roundf(amount * 100) / 100;

然后将其转换为std::string