如何change/control gcc 或g++ 中的输出精度?

How to change/control the output precision in gcc or g++?

我有以下用c++编写并由g++ 4.8编译的代码。

double x = 0.123456789;
cout << x << endl;

不明白为什么只得到输出

0.1234567

即使我将 x 定义为 long double x。这可能是一个非常幼稚的问题,但是有人可以给我一些点击吗?

This page 拥有您需要的一切,即您应该使用 std::setprecision 流操纵器。

double x = 0.123456789;
std::cout << std::setprecision(10) << x << std::endl;

使用precision函数或setprecision操作符设置有效数字的位数(或小数位数,如果您还使用fixed)。

cout.precision(10);  // 10 significant figures

cout << setprecision(10); // also 10 significant figures

cout << fixed << setprecision(10);  // always fixed-point format, 10 decimal places

默认精度为6。