在 C 语言中,我们有这样的语句:
printf("%6.3f ",floatNumber);
这限制了打印时的位数。
我怎样才能实现类似的行为C++
?我知道,setprecision
但这并不能帮助我做同样的事情。
在 C 语言中,我们有这样的语句:
printf("%6.3f ",floatNumber);
这限制了打印时的位数。
我怎样才能实现类似的行为C++
?我知道,setprecision
但这并不能帮助我做同样的事情。
%6.3f
要获得与仅使用标准 iostream 操纵器指定的格式相似的格式,您可以执行以下操作:
std::cout << std::fixed << std::setw(6) << std::setprecision(3) << f;
具体std::fixed
表示与格式字符串中相同的基本格式f
,例如,“精度”对格式字符串和 ostream 表示相同的含义。std::setprecision(3)
然后实际设置精度并std::setw(6)
设置字段宽度。如果不进行设置std::fixed
,您将获得与格式字符串指定的格式相似的格式"%6.3g"
。
请注意,除了setw
这些操纵器是粘性的。也就是说,它们在一个变量输出后仍然有效。