<< pi << '\n'; // показать только 5 цифр в сумме
// по обе стороны от точки.
cout << "pi = " << fixed // Режим чисел с фиксированной точкой;
<< showpos // выдать "+" для положительных чисел.
<< setprecision(3) // показать 3 цифры *справа* от
<< pi << '\n'; // десятичной точки.
cout << "pi = " << scientific // Режим научного представления;
<< noshowpos // знак плюс больше не выдается
<< pi * 1000 << '\n';
cout.flags(flags); // Восстановить значения флагов
}
Это приведет к получению следующего результата.
pi = 3.1429
pi = +3.143
pi = 3.143е+003
Манипуляторы, работающие с числами с плавающей точкой, делятся на две категории. Одни из них задают формат и в данном рецепте устанавливают общий вид целых значений и значений чисел с плавающей точкой, а другие используются для тонкой настройки каждого формата. Предусмотрены следующие форматы.
В этом формате фиксировано количество отображаемых цифр (по умолчанию это количество равно шести), а десятичная точка отображается в соответствующем месте. Поэтому число «пи» по умолчанию будет иметь вид 3.14286
, а умноженное на 100 будет отображаться как 314.286
.
В этом формате фиксировано количество цифр, отображаемое 3.142857
, а умноженное на 100 — 314.285714
. В обоих случаях количество цифр, отображаемое справа от десятичной точки, равно шести, а общее количество цифр может быть любым.
Значение начинается с цифры, затем идет десятичная точка и несколько цифр, количество которых определяется заданной точностью; затем идет буква «е» и степень 10, в которую надо возвести предыдущее значение. В этом случае число «пи», умноженное на 1000, будет отображаться как 3.142857е+003
.
В табл. 10.2 приводятся все манипуляторы, которые воздействуют на вывод чисел с плавающей точкой (а иногда и на вывод любых чисел). См. табл. 10.1, где приводятся манипуляторы общего типа, которые можно использовать совместно с манипуляторами чисел с плавающей точкой.