在 C++ 程式設計中,初學者常遇到浮點數輸出精度不足的問題。例如計算圓柱體積積時,預設輸出可能只顯示幾位小數,無法滿足「精確到小數點後三位」的需求。
#include <iostream>
using namespace std;
int main() {
int r, h;
cout << "please input two number:" << '\n';
cin >> r >> h;
cout << "radious:" << r << " high:" << h << endl;
double v = 3.14 * r * r * h;
cout << "The volume is:" << v << endl;
return 0;
}
使用 <iomanip> 標頭檔中的 fixed 和 setprecision(n) 操作符即可輕鬆控制輸出精度。
#include <iomanip> // 必須包含此標頭檔
// ... 計算體積 v 之後 ...
cout << "The volume is:" << fixed << setprecision(3) << v << endl;
123.456,不足位數會自動補零(如 10.500)。#include <iostream>
#include <iomanip> // 關鍵:引入輸入輸出格式控制庫
using namespace std;
int main() {
int r, h;
cout << "Please input radius and height:" << endl;
cin >> r >> h;
double v = 3.14159 * r * r * h; // 使用更精確的 PI 值
// 核心:fixed 固定小數點 + setprecision(3) 保留三位
cout << "Radius: " << r << ", Height: " << h << endl;
cout << "The volume is: " << fixed << setprecision(3) << v << endl;
return 0;
}
<iomanip>:會導致編譯錯誤 setprecision 未宣告。setprecision 控制的是「有效數字總位數」而非小數位數。double 類型本身精度(約 15-17 位有效數字)無意義,且可能顯示垃圾值。同樣的技巧適用於所有浮點數輸出場景:財務報表(保留 2 位)、科學計算(保留 6 位以上)、座標顯示等。只需將 setprecision 參數改為所需位數即可。