2015-07-04 253 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;