0

我主要有这个:

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 添加到末尾。

4

1 回答 1

3

改用std::setprecision操纵器:

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

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

编辑:

哎呀,忘记加了#include <iomanip>

编辑2:

为了完整起见,请参阅我的这个问题,了解为什么cout.precision()在中间调用时会影响整个流。

于 2016-02-09T06:11:06.963 回答