std::ios_base::precision
streamsize precision() const; | (1) | |
streamsize precision( streamsize new_precision ); | (2) |
Управляет точностью (то есть количеством выводимых цифр) вывода чисел с плавающей точкой, выполняемого с помощью std::num_put::do_put.
1) Возвращает текущую точность.
2) Устанавливает заданную точность. Возвращает предыдущую точность.
Точность по умолчанию, устанавливаемая с помощью std::basic_ios::init, равна 6.
Параметры
| new_precision | - | новое значение точности |
Возвращаемое значение
Точность до вызова функции
Пример
#include <iostream>
int main()
{
const double d = 12.345678901234;
std::cout << "The default precision is " << std::cout.precision() << "\n\n";
std::cout << "With default precision d is " << d << '\n';
std::cout.precision(8);
std::cout << "With high precision d is " << d << '\n';
}
Вывод:
The default precision is 6 With default precision d is 12.3457 With high precision d is 12.345679
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были ретроспективно применены к ранее опубликованным стандартам C++.
| Отчёт об ошибке | Применяется к | Поведение согласно опубликованной версии | Правильное поведение |
|---|---|---|---|
| LWG 189 | C++98 | 'precision' определялось как «количество цифр после десятичной точки», но в некоторых случаях это неверно | исправлено |
См. также
| управляет шириной поля (открытая функция-член) |
|
| изменяет точность чисел с плавающей точкой (функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/ios_base/precision