我有以下代码:
template<typename _Tp>
std::string string_from_number(_Tp number, int precision = 5)
{
std::ostringstream oss;
oss.width(precision+1);
oss<<number;
return oss.str();
}
但是字符串长度不是预期的5,但保持默认值
将oss.width
替换为oss<<std::setw
也不起作用。
我做错了什么?
编辑:
如果数字是双重类型,如0.123456789,则问题清楚显示。
答案 0 :(得分:3)
为了控制浮点数中显示的位数,您需要的功能是precision
,而不是width
。如果您想确保以固定符号(而不是科学)显示数字,请查看与fixed
成员函数一起使用的格式标志setf
。