如何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。
我有以下用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。