У меня есть список float
значений, и я хочу напечатать их cout
с двумя десятичными знаками.
Например:
10.900 should be printed as 10.90
1.000 should be printed as 1.00
122.345 should be printed as 122.34
Как я могу это сделать?
( setprecision
похоже, не помогает в этом.)
#define FIXED_FLOAT(x) std::fixed <<std::setprecision(2)<<(x)
который упрощает использование:cout<<FIXED_FLOAT(d)
Вы были почти у цели, также необходимо использовать std :: fixed, см. Http://www.cplusplus.com/reference/iostream/manipulators/fixed/
выходы:
источник
setprecision(n)
применяется ко всему числу, а не к дробной части. Вам нужно использовать формат с фиксированной точкой, чтобы применить его к дробной части:setiosflags(ios::fixed)
источник
Упростите принятый ответ
Упрощенный пример:
И вы получите результат
Ссылка:
std::fixed
std::setprecision
источник
У меня возникла проблема с целыми числами, когда я хотел согласованное форматирование.
Перепишем для полноты:
источник
У меня была аналогичная проблема на соревновании по кодированию, и я решил ее так. Установка точности 2 для всех двойных значений
Сначала добавляем заголовок для использования setprecision
#include <iomanip>
Затем добавляем следующий код в наш основной
Вывод:
Вам нужно использовать фиксированный для написания 5.00, поэтому ваш вывод не придет за 5.00.
Я добавляю короткую справочную видео-ссылку, которая полезна
источник
Вы должны установить «плавающий режим» на фиксированный.
источник
Чтобы установить фиксированные 2 цифры после десятичной точки, используйте сначала следующие:
Затем распечатайте двойные значения.
Это пример:
источник
источник
с шаблонами
аналогично и для научных, с опцией ширины (полезно для столбцов)
источник
Просто мелочь; поместите в заголовок следующее
используя пространство имен std;
затем
std :: cout << std :: fixed << std :: setprecision (2) << d;
становится упрощенным до
cout << fixed << setprecision (2) << d;
источник
using namespace std;
ради этого - поймите, почему вы это делаете.это пример использования матрицы.
источник