如何在单个 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";
数字2
是cout.precision()
函数的return值,这是当前精度值,被插入到流中并因此输出。
编辑:
哎呀,忘了补充#include <iomanip>
。
编辑 2:
为了完整性,请参阅我的 关于为什么 cout.precision()
在中间调用时会影响整个流。
我主要有这个:
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";
数字2
是cout.precision()
函数的return值,这是当前精度值,被插入到流中并因此输出。
编辑:
哎呀,忘了补充#include <iomanip>
。
编辑 2:
为了完整性,请参阅我的 cout.precision()
在中间调用时会影响整个流。