我有以下代码:
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,问题就很明显了。