Манипулятор | Описание | Пример вывода |
---|---|---|
fixed | Показать значение чисел с плавающей точкой с фиксированным количеством цифр справа от десятичной точки | При стандартной точности, равной шести цифрам: pi = 3.142857 |
scientific | Показать значение чисел с плавающей точкой, применяя научную нотацию, в которой используется значение с десятичной точкой и экспонентный множитель | pi * 1000 при стандартной точности, равной шести цифрам: pi = 3.142857е+003 |
setprecision | Установить количество цифр, отображаемых в выводе (см. последующие объяснения) | Число «пи» в стандартном формате при точности, равной трем цифрам: pi = 3.14 |
В фиксированном формате: pi = 3.143 | ||
В научном формате: pi = 3.143е+000 | ||
showpos noshowpos | Показать знак «плюс» перед положительными числами. Это действует для чисел любого типа, с десятичной точкой или целых | +3.14 |
showpoint noshowpoint | Показать десятичную точку, даже если после нее идут одни нули. Это действует только для чисел с плавающей точкой и не распространяется на целые числа | Следующая строка при точности, равной двум цифрам: cout << showpoint << 2.0 выдаст такой результат: 2.00 |
showbase noshowbase | Показать основание числа, представленного в десятичном виде (основание отсутствует), в восьмеричном виде (ведущий нуль) или в шестнадцатеричном виде (префикс 0x). См. следующую строку таблицы | Десятичное представление: 32 Восьмеричное: 040 Шестнадцатеричное: 0x20 |
dec oct hex | Установить основание для отображения числа в десятичном, восьмеричном или шестнадцатеричном виде. Само основание по умолчанию не отображается; для его отображения используйте showbase | См предыдущую строку таблицы |
uppercase nouppercase | Отображать значения, используя верхний регистр | Устанавливает регистр вывода чисел, например для префикса 0X шестнадцатеричных чисел или буквы E для чисел, представленных в научной нотации |
Все манипуляторы, кроме setprecision
, одинаково воздействуют на все три формата. В стандартном режиме «точность» определяет суммарное количество цифр по обе стороны от десятичной точки. Например, для отображения числа «пи» в стандартном формате с точностью, равной 2, выполните следующие действия.
cout << "pi = " << setprecision(2) << pi << '\n';
В результате вы получите
pi = 3.1
Для сравнения представим, что вам требуется отобразить число «пи» в формате чисел с плавающей точкой.
cout << "pi = " << fixed << setprecision(2) << pi << '\n';
Теперь результат будет таким.
pi = 3.14
Отличие объясняется тем, что здесь точность определяет количество цифр, расположенных
cout << "pi = " << fixed << setprecision(2) << pi * 1000 << '\n';
выдает в результате:
pi = 3142.86
Это хорошо, потому что вы можете задать точность, установить ширину своего поля при помощи setw
, выровнять вправо отображаемое значение при помощи right
(см. рецепт 10.1), и ваши числа будут выровнены вертикально по десятичной точке.