Для форматування виводу дійсних чисел можна використовувати маніпулятори потоку.
Функцію - маніпулятор потоку можна включати в операції поміщення в потік і вилучення з потоку (<<, >>).
В С ++ є ряд маніпуляторів. Розглянемо основні:
| Маніпулятор | Опис |
|---|---|
| endl | Поміщення в вихідний потік символу кінця рядка '\n' |
| width(ширина) | Встановлює ширину поля виведення |
| precision(точність) | Встановлює кількість значущих цифр у числі (або після коми) в залежності від використання або не використання fixed |
| fixed | Показує, що встановлена точність відноситься до кількості знаків після коми |
#include <iostream>
using namespace std;
int main()
{
// Ініціалізація змінних
double a = -112.234; // Дробове число з від'ємним знаком
double b = 4.3981; // Дробове число з додатним знаком
int c = 18; // Ціле число
// Виведення з встановленням ширини поля 10 символів
cout.width(10); // Встановлюємо ширину виведення для наступного елемента
cout << a << endl; // Виведення змінної a (вирівнювання праворуч за замовчуванням)
cout.width(10); // Встановлюємо ширину виведення знову
cout << b << endl; // Виведення змінної b
cout.width(10); // Встановлюємо ширину виведення
cout << c << endl; // Виведення змінної c
return 0; // Завершення програми
}
Ширина поля виводу встановлюється перед виведенням кожної змінної окремо.
В даному прикладі встановлена ширина поля виведення width (10) символів. Якщо число займає менше, то зліва, за замовчуванням, доповнюється пробілами.

#include <iostream>
using namespace std;
int main()
{
// Ініціалізація змінних
double a = -112.234; // Від'ємне число з плаваючою точкою
double b = 4.3981; // Додатнє число з плаваючою точкою
int c = 18; // Ціле число
// Виведення з форматуванням
cout.width(10); // Встановлюємо ширину поля (10 символів)
cout.precision(4); // Встановлюємо точність (4 значущих цифри)
cout << a << endl; // Виводимо перше число
cout.width(10); // Повторно встановлюємо ширину
cout << b << endl; // Виводимо друге число
cout.width(10); // Встановлюємо ширину для цілого числа
cout << c << endl; // Виводимо ціле число
return 0;
}
Точність (в даному випадку кількість значущих цифр) встановлюється для виведення всіх змінних.
В даному прикладі встановлено кількість значущих цифр precision (4). Перші два числа округлилися до чотирьох значущих цифр.

#include <iostream>
using namespace std;
int main()
{
// Ініціалізація змінних
double a = -112.234; // Від'ємне число з плаваючою точкою
double b = 4.3981; // Додатнє число з плаваючою точкою
int c = 18; // Ціле число
// Налаштування формату виведення
cout.width(10); // Ширина поля виведення - 10 символів
cout.precision(4); // Точність - 4 знаки (включаючи цілу частину)
// Виведення значень
cout << a << endl; // Виведення з точністю 4 знаки
cout.width(10); // Встановлення ширини для наступного виведення
cout << b << endl; // Виведення (точність зберігається)
cout.width(10); // Встановлення ширини
cout << c << endl; // Виведення цілого числа (точність не впливає)
return 0;
}
Якщо в вихідний потік помістити маніпулятор fixed, то точність буде означати кількість значущих цифр після точки.
В даному прикладі встановлено precision (2) - дві цифри після крапки.

#include <iostream>
using namespace std;
int main()
{
// Ініціалізація змінних
double a = -112.234; // Від'ємне число з плаваючою точкою
double b = 4.3981; // Додатнє число з плаваючою точкою
int c = 18; // Ціле число
// Встановлення фіксованого формату для чисел з плаваючою точкою
cout << fixed;
// Виведення значень з різними налаштуваннями
cout.width(10); // Ширина поля - 10 символів
cout.precision(2); // 2 знаки після коми
cout << a << endl; // Виведення: " -112.23"
cout.width(10); // Ширина поля - 10 символів
cout.precision(1); // 1 знак після коми
cout << b << endl; // Виведення: " 4.4"
cout.width(10); // Ширина поля - 10 символів
// Для цілих чисел precision не діє
cout << c << endl; // Виведення: " 18"
return 0;
}
В даному прикладі для першого числа встановлено дві цифри після крапки, а для другого числа одна цифра після крапки.
