[英]Why setw and width does not work for ostringstream?
我有以下代码:
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),则该问题将清楚显示。
为了控制浮点数中显示的位数,您需要的功能是precision
而不是width
。 如果要确保获得以固定符号显示的数字(而不是科学数字),请查看与setf
成员函数一起使用的format标志fixed
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.