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++.
| DR | Применено к | Поведение, как опубликовано | Корректное поведение |
|---|---|---|---|
| LWG 189 | C++98 | 'precision' определялось как 'количество цифр после десятичной точки', но это неверно в некоторых случаях |
исправлено |
См. также
| управление шириной поля (публичный член-функция) |
|
| изменение точности чисел с плавающей точкой (функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/ios_base/precision