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
10進数の後に3桁の精度で数値を出力したい場合は、数値cout << std::setprecision(3) << desired_number
を出力する前に、次のものを追加してください。コードに#include <iomanip>
を追加することを忘れないでください。