C語言里可以用printf(),%f來實現浮點數的格式化輸出,用cout呢...?
iomanip是I/O流控制頭文件,就像printf的格式化輸出一樣。
以下是一些常用的:
dec 置基數為10 相當於"%d"
hex 置基數為16 相當於"%X"
oct 置基數為8 相當於"%o"
setfill(c) 設填充字符為c
setprecision(n) 設顯示小數精度為n位
setw(n) 設域寬為n個字符
setioflags(ios::fixed) 固定的浮點顯示
setioflags(ios::scientific) 指數表示
setiosflags(ios::left) 左對齊
setiosflags(ios::right) 右對齊
setiosflags(ios::skipws 忽略前導空白
setiosflags(ios::uppercase) 16進制數大寫輸出
setiosflags(ios::lowercase) 16進制小寫輸出
setiosflags(ios::showpoint) 強制顯示小數點
setiosflags(ios::showpos) 強制顯示符號
1 #include<iostream> 2 #include <iomanip> 3 using namespace std; 4 double d=11.23456; 5 int main() 6 { 7 cout<<d<<endl; //直接輸出只能輸出6位數,包括整數部分和小數部分 8 cout<<setprecision(3)<<d<<endl; //精度為3,輸出3位數 9 cout<<setiosflags(ios::fixed)<<d<<endl; //精度為3,定點輸出,輸出3位小數 10 cout<<setiosflags(ios::fixed)<<setprecision(7)<<d<<endl;//位數不夠,末尾添0 11 return 0; 12 }