Namespaces
Variants

std::ios_base:: precision

From cppreference.net
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 << "默认精度为 " << std::cout.precision() << "\n\n";
    std::cout << "使用默认精度时 d 的值为 " << d << '\n';
    std::cout.precision(8);
    std::cout << "使用高精度时 d 的值为 " << d << '\n';
}

输出:

默认精度为 6
使用默认精度时 d 的值为 12.3457
使用高精度时 d 的值为 12.345679

缺陷报告

以下行为变更缺陷报告被追溯应用于先前发布的C++标准。

缺陷报告 适用范围 发布时行为 正确行为
LWG 189 C++98 'precision' 被定义为 '小数点后的位数',但在某些情况下不正确 已修正

参见

管理字段宽度
(公开成员函数)
修改浮点数精度
(函数)