如何在单个 cout 中对多个变量进行 set.precision

how to set.precision on multiple variables in a single cout

我主要有这个:

Product newProduct;
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(2);
newProduct.display();

在 Product.cpp 我有:

cout << "$" << basePrice << " - " 
     << name << " - " << cout.precision(1) << weight << " lbs\n";

但是在 .cpp 中将精度更改为 (1) 也会将 basePrice 更改为 (1)。如何更改同一 cout 中不同变量的精度?有办法吗?还是我只是将它们放在不同的 cout 中?那行得通吗?为什么或者为什么不?

更新 当我尝试第二个 cout 时,它会将数字 2 添加到我的 name 变量的末尾。换句话说,我在 name 变量之后结束了第一个 cout。它正在工作,但将数字 2 添加到末尾。

改为使用 std::setprecision 操纵器:

cout << setprecision(2) << "$" << basePrice << " - " 
 << name << " - " << setprecision(1) << weight << " lbs\n";

数字2cout.precision()函数的return值,这是当前精度值,被插入到流中并因此输出。

编辑:

哎呀,忘了补充#include <iomanip>

编辑 2:

为了完整性,请参阅我的 关于为什么 cout.precision() 在中间调用时会影响整个流。