Как установить.precision для нескольких переменных в одной 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";
но при изменении точности на (1) в.cpp базовая цена также изменяется на (1). Как изменить точность разных переменных в одной и той же метке? есть ли способ? или я просто помещаю их в разные куты? Будет ли это даже работать? Почему или почему нет?
Обновление, когда я пробую второй cout, это добавляет число 2 в конец моей переменной имени. Другими словами, я закончил первый cout после имени переменной. Это работает, но добавляет номер 2 в конце.
1 ответ
Использовать std::setprecision
вместо манипулятора:
cout << setprecision(2) << "$" << basePrice << " - "
<< name << " - " << setprecision(1) << weight << " lbs\n";
Число2
это возвращаемое значениеcout.precision()
функция, которая является текущим значением точности, которая вставляется в поток и, следовательно, выводится.
Редактировать:
Ой, забыл добавить#include <iomanip>
,
Изменить 2:
Для полноты см. Этот мой вопрос о том, почему cout.precision()
влияет на весь поток при вызове посередине.