參考 : http://upliu.net/how-cout-out-2-precision.html
大家都知道用 C 語言中 printf () 函數可以非常方便控制保留 幾位小數輸出
不過在 C++ 當中也是可以控制小數保留,cout () 和 printf () 還是有一些區別
cout<<setiosflags(ios::fixed)<<setprecision(2);//需要頭文件#include <iomanip>
然后再輸出實數類型變量即可以保留2位小數輸出了,當然你要保留三位小數,setprecision(3)就行。
setprecision是指設置輸出精度,當沒有
cout<<setiosflags(ios::fixed)
時,輸出格式是數據的有效位數,例如
2 float a = 123.666; cout<<setprecision(5)<<a;
將輸出123.67(注意這里,它會四舍五入)。如果setprecision里的參數小於整數位數,將以指數形式輸出,例如
2 float a = 123.666; cout<<setprecision(2)<<a;
將輸出1.2e+002。
setiosflags(ios::fixed)是指以固定的浮點顯示,當setiosflags(ios::fixed)和serprecision(n)兩個一起用時就表示保留n位小數輸出。
這里還要注意,每次輸出只要設置一次就行了,因為這兩個的作用范圍是后續對象,而不是僅對后一個對象起作用。