std::ios_base::precision

来自cppreference.com
< cpp‎ | io‎ | ios base
 
 
 
 
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 = 1.2345678901234;
    std::cout << "默认精度是 " << std::cout.precision() << "\n\n";
    std::cout << "默认精度下 d 是 " << d << '\n';
    std::cout.precision(12);
    std::cout << "  高精度下 d 是 " << d << '\n';
}

输出:

默认精度是 6
 
默认精度下 d 是 1.23457
  高精度下 d 是 1.23456789012

缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告 应用于 出版时的行为 正确行为
LWG 189 C++98 “精度”被定义成“小数点后的位数”,但并不是所有场合都是这样 已修正

参阅

管理域的宽度
(公开成员函数)
更改浮点精度
(函数)