2015-04-22 79 views
3

當COUT-ING浮動點的數量,即31.14159,我怎麼可以設置COUT(4)在浮點使用setprecision:如何使用setprecision在CPP僅適用於浮動的點數

cout <<setprecision(4)<< 31.14159<<endl; // returns 31.14 

原樣,它認爲整數以十進制數字表示,輸出:31.14。不過,我想得到:31.1416。

+0

可能重複的[用cout打印正確的小數點數](http://stackoverflow.com/questions/5907031/printing-the-correct-number-of-decimal-points-with-cout) –

回答

5

std :: fixed表示小數點後面會有一個固定的小數位數。

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

- 這將打印31.1416

+0

I試圖通過加2個雙打來理解'setprecision',加法在小數部分有'0'。並且使用'cout << setprecision(2)'打印的答案沒有添加'std :: fixed'導致不打印答案的小數部分...您能解釋一下,爲什麼會發生這種情況 – Anuj

1

您可以使用std::fixed

std::cout << std::fixed << std::setprecision(4) << 31.14159 << endl ; 

,你會得到輸出爲31.1416

當您添加std::fixed,該std::setprecision(4)將於效果小數部分,因此您將在小數點後獲得4值。

A std::setprecision()將對整個號碼生效。但是,當您將std::fixed與其一起添加時,std::setprecision()只會影響數字的小數部分。

+0

我想了解'setprecision '通過加2個雙打,小數部分加上'0'。並且使用'cout << setprecision(2)'打印而未添加'std :: fixed'的答案導致不打印答案的小數部分......您能解釋一下,爲什麼發生這種情況 – Anuj

相關問題