我有以下用c ++编写并由g ++ 4.8编译的代码。
double x = 0.123456789;
cout << x << endl;
我不明白为什么我只得到输出
0.1234567
即使我将x定义为long double x
。这可能是一个非常天真的问题,但任何人都可以给我一些点击吗?
答案 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。