Печать правильного количества десятичных точек с помощью cout

У меня есть список значений 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 , похоже, не помогает в этом).

С помощью вы можете использовать std::fixed и std::setprecision

Вот пример

 #include  #include  int main() { double d = 122.345; std::cout << std::fixed; std::cout << std::setprecision(2); std::cout << d; } 

И вы получите результат

 122.34 

Вы были почти там, нужно также использовать std :: fixed, см. http://www.cplusplus.com/reference/iostream/manipulators/fixed/

 #include  #include  int main(int argc, char** argv) { float testme[] = { 0.12345, 1.2345, 12.345, 123.45, 1234.5, 12345 }; std::cout << std::setprecision(2) << std::fixed; for(int i = 0; i < 6; ++i) { std::cout << testme[i] << std::endl; } return 0; } 

выходы:

 0.12 1.23 12.35 123.45 1234.50 12345.00 

setprecision(n) применяется ко всему числу, а не к дробной части. Вам нужно использовать формат фиксированной точки, чтобы применить его к дробной части: setiosflags(ios::fixed)

Упростить принятый ответ

Упрощенный пример:

 #include  #include  int main() { double d = 122.345; std::cout << std::fixed << std::setprecision(2) << d; } 

И вы получите результат

 122.34 

Справка:

  • std::fixed
  • std::setprecision

У меня возникла проблема с целыми числами, требуя последовательного форматирования.

Перепишите для полноты:

 #include  #include  int main() { // floating point formatting example double d = 122.345; cout << std::fixed << std::setprecision(2) << d << endl; // Output: 122.34 // integer formatting example int i = 122; cout << std::fixed << std::setprecision(2) << double(i) << endl; // Output: 122.00 } 

Вы должны установить фиксированный режим «float».

 float num = 15.839; // this will output 15.84 std::cout << std::fixed << "num = " << std::setprecision(2) << num << std::endl; 

Чтобы установить фиксированные 2 цифры после десятичной точки, используйте их сначала:

 cout.setf(ios::fixed); cout.setf(ios::showpoint); cout.precision(2); 

Затем распечатайте двойные значения.

Это пример:

 #include  using std::cout; using std::ios; using std::endl; int main(int argc, char *argv[]) { cout.setf(ios::fixed); cout.setf(ios::showpoint); cout.precision(2); double d = 10.90; cout << d << endl; return 0; } 

У меня была подобная проблема в соревновании по кодированию, и именно так я справился с этим. Установка точности 2 для всех двойных значений

Сначала добавление заголовка для использования setprecision

#include

Затем добавив следующий код в нашу основную

  double answer=5.9999; double answer2=5.0000; cout< 

Вывод:

 5.99 5.00 

Вам нужно использовать исправление для записи 5,00, поэтому ваш выход не будет на 5.00.

Краткая ссылка для ссылки, которую я добавляю, которая полезна

Небольшая точка; поместите следующее в заголовок

использование пространства имен std;

тогда

std :: cout << std :: fixed << std :: setprecision (2) << d;

упрощается

cout << fixed << setprecision (2) << d;

 #include int main() { double d=15.6464545347; printf("%0.2lf",d); } 

это пример с использованием матрицы.

 cout< 
  • HtmlEncode из библиотеки classов
  • Вызов контекстного меню NotifyIcon
  • Как элегантно работать с часовыми поясами
  • Прочитать файл назад?
  • Puzzling Enumerable.Cast InvalidCastException
  • Возвращать / потреблять динамический анонимный тип по границам сборки
  • Чтение файла UIF-8 Unicode в wstring
  • Многопоточные блокировки памяти для C / C ++
  • Предупреждение libpng: iCCP: известный неправильный профиль sRGB
  • ConfigureAwait подталкивает продолжение в stream пула
  • Локальная firebase database, мне нужны некоторые примеры
  • Interesting Posts

    Отключение Центра обновления Windows для конкретной программы или функции

    Как сравнить два объекта в модульном тесте?

    Ошибка browser.msie после обновления до jQuery 1.9.1

    Не может заимствовать как неизменяемый, поскольку он также заимствован как изменяемый в аргументах функции

    CSV API для Java

    В чем разница между веб-сайтом и веб-приложением?

    Исключение «Исключительная привязка к реляционной ссылке» с JSON.Net

    Поиск островов нhive в последовательности

    Лучший способ parseDouble с запятой в качестве десятичного разделителя?

    Установите Adobe Flash 64-бит в IE8 на W2K8 R2

    Как передать список IEnumerable controllerу в MVC, включая состояние флажка?

    Как использовать полноэкранное приложение для обоих мониторов с двойным дисплеем?

    Отключить Linux для чтения и записи кэша файлов в разделе

    Добавить столбец с подсчетами другого

    Доступ запрещен при записи файлов на сетевой диск

    Давайте будем гением компьютера.