我主要有这个:
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添加到我的名字变量的末尾。换句话说,我在名字变量之后结束了第一个cout。它正在工作,但将数字2添加到最后。
答案 0 :(得分:3)
请改用std::setprecision
操纵器:
cout << setprecision(2) << "$" << basePrice << " - "
<< name << " - " << setprecision(1) << weight << " lbs\n";
数字2
是cout.precision()
函数的返回值,它是当前的精度值,插入到流中并因此输出。
编辑:
哎呀,忘了添加#include <iomanip>
。
编辑2:
为了完整性,请参阅我的this question,了解cout.precision()
在中间调用时影响整个流的原因。