我想从用户那里获取只有两个小数点(999.99)的浮点输入并将其转换为字符串
float amount;
cout << "Please enter the amount:";
cin.ignore();
cin >> amount;
string Price = std::to_string(amount);
此代码的输出为999.989990
答案 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
。