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