【发布时间】:2021-07-07 23:13:10
【问题描述】:
我正在自学 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;
}
【问题讨论】:
-
请注意,123456e10 123.456 和 123456e-10 都有 6 个有效数字。
654321.987有 9 个。 -
试试
setprecision(15)之类的有趣的东西。保证打印 6 个有效数字。 -
战术说明:Code::Blocks 是一个位于单独 C++ 编译器之上的工具,因此经常说“最新的 Code::Blocks”传达的信息很少。它可能位于一个古老的编译器之上。它可能位于最近从树干拉出的顶部。在 Windows 上,一些 Code::blocks 包附带 mingw-GCC 工具链,我相信最新的官方版本附带 GCC 8.1。酷孩子们正在使用 GCC 11.1。我不是很酷,所以我还在使用 GCC 10.2。和 6.3。和4.8。还有 3.3。
-
是的。我仍然在为一个不会死的产品摇晃一个 20 年的编译器。坦率地说,我认为这是一场胜利。
标签: c++ codeblocks