"Double" 即使在 setprecision 之后也不会打印超过 6 个有效数字

"Double" is not printing more than 6 significant digits even after setprecision

我正在自学 C++,出于某种原因,即使在 std::setprecision 之后,“double”也不会打印超过 6 位有效数字。我需要做其他事情吗?如果有帮助,请使用最新版本的代码块。这是所有代码:

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
    std::setprecision(9);
    double A = 654321.987;
    cout << A << endl;
    return 0;
}

您需要将 std::setprecision(9) 的结果提供给 std::cout。否则它无法知道它适用于哪个输出流(因此它不会适用于任何东西)。

std::cout << std::setprecision(9) << A << std::endl;

或者,如果您愿意,可以单独进行:

std::cout << std::setprecision(9);
std::cout << A << std::endl;