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 内の異なる変数の精度を変更するにはどうすればよいですか? 方法はありますか?または、それらを別のカウトに配置するだけですか?それはうまくいきますか?なぜ、またはなぜではないのですか?

2 番目の cout を試したときに更新すると、name 変数の末尾に数字 2 が追加されます。つまり、name 変数の後の最初の cout を終了しました。機能していますが、末尾に数字 2 を追加します。

4

1 に答える 1

3

std::setprecision代わりにマニピュレータを使用してください:

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

数値2は、現在の精度値である関数の戻り値でありcout.precision()、ストリームに挿入されて出力されます。

編集:

ああ、追加するのを忘れていました#include <iomanip>

編集2:

完全を期すために、途中で呼び出されたときにストリーム全体に影響する理由について、この私の質問を参照してください。cout.precision()

于 2016-02-09T06:11:06.963 に答える