[英]How to output with 3 digits after the decimal point with C++ stream?
給定一個float類型的變量,如何在C++中使用iostream輸出小數點后3位?
這個確實顯示“13.141”
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
double f = 13.14159;
cout << fixed;
cout << setprecision(3) << f << endl;
return 0;
}
您可以使用iomanip
標頭獲得固定數量的小數位數(以及許多其他內容)。 例如:
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.141592653589;
std::cout << std::fixed << std::setprecision(2) << pi << '\n';
return 0;
}
將輸出:
3.14
請注意, fixed
和setprecision
永久更改流,因此,如果要本地化效果,可以事先保存信息,然后再恢復:
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.141592653589;
std::cout << pi << '\n';
// Save flags/precision.
std::ios_base::fmtflags oldflags = std::cout.flags();
std::streamsize oldprecision = std::cout.precision();
std::cout << std::fixed << std::setprecision(2) << pi << '\n';
std::cout << pi << '\n';
// Restore flags/precision.
std::cout.flags (oldflags);
std::cout.precision (oldprecision);
std::cout << pi << '\n';
return 0;
}
其輸出是:
3.14159
3.14
3.14
3.14159
如果要打印小數點后 3 位精度的數字,只需在打印數字cout << std::setprecision(3) << desired_number
之前添加以下cout << std::setprecision(3) << desired_number
。 不要忘記在代碼中添加#include <iomanip>
。
通常,精度是顯示的最大位數。 操縱器固定將設置輸出流以固定格式顯示值。 在fixed中,精度是小數點后的位數。 setprecision允許設置用於顯示浮點值的精度,它需要一個整數參數。
cout << fixed;
cout << setprecision(3) << f << endl;
您可以使用cout.unsetf(ios::fixed)取消固定
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.