即使在 setprecision 之后,“Double”也不会打印超过 6 位有效数字

Wek*_*ava 0 c++ codeblocks

我正在自学 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;
}
Run Code Online (Sandbox Code Playgroud)

Kei*_*son 5

你需要养活的结果std::setprecision(9)std::cout。否则它无法知道它适用于哪个输出流(因此它不适用于任何东西)。

std::cout << std::setprecision(9) << A << std::endl;
Run Code Online (Sandbox Code Playgroud)

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

std::cout << std::setprecision(9);
std::cout << A << std::endl;
Run Code Online (Sandbox Code Playgroud)