如何在gcc或g ++中更改/控制输出精度?

时间:2015-01-14 10:26:22

标签: c++ gcc g++

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

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

我不明白为什么我只得到输出

0.1234567

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

使用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。