2015-07-04 209 views
0

我无法让我的程序为我的双精度输出正确的精度。说我有一个双精度浮点数和其他浮点数精度

double d; 

运行一些算法后,我得到d作为我的输出。我想将我的d变量的精度设置为十进制后的4个精度点。我应该能够做到这一点,像这样:

cout << setprecision(4) << d; 

的问题是,如果我要是d是一个整数,那么没有小数放置打印。

例如,如果d == 120,那么我的程序将打印120。我想要它打印120.0000。如何让我的程序始终打印4位小数?

+0

[正确使用的std :: cout.precision() - 不打印尾随零]的可能重复(http://stackoverflow.com/questions/17341870/correct-use-of-stdcout-precision- not-printing-trailing-zero) – 5gon12eder

+0

为什么这个问题被低估了这么多?它不完全清楚和有效吗?然而,之前已被问到(可能不止一次)。 – 5gon12eder

回答

3

您需要使用固定的精度来输出固定的小数点数。你应该告诉stdout流(cout)你想要使用固定精度。

std::cout << std::fixed << std::setprecision(4) << d;