C言語のprintf() での書式指定 "%4d", "%7.2f", "%20.15e", "%25.15g" は、C++ で使うのはあきらめることを勧める。
// testfloat.cpp --- ナンセンスな計算 (円周率とアボガドロ数の積) #include <iostream> #include <iomanip> #include <cmath> using namespace std; int main(void) { double pi, NA; pi = 4.0 * atan(1.0); NA = 6.022e+23; cout << setprecision(15); //doubleは10進16桁弱なので。cout.precision(15);も可 cout << fixed; cout << "π=" << setw(20) << pi << ", NA=" << setw(20) << NA << ", πNa=" << setw(20) << pi * NA << endl; // %20.15f 相当 cout << scientific; cout << "π=" << setw(24) << pi << ", NA=" << setw(24) << NA << ", πNa=" << setw(24) << pi * NA << endl; // %24.15e 相当 cout << defaultfloat; cout << "π=" << setw(20) << pi << ", NA=" << setw(20) << NA << ", πNa=" << setw(20) << pi * NA << endl; // %20.15g 相当 }(実行してみると分かるが、意外と難しい…)