A..2 数値の書式指定

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 相当
}
(実行してみると分かるが、意外と難しい…)



Subsections

桂田 祐史