円周率 M_PI とmath.h

M_PI

数学関係の関数などは、math.h にある。 円周率の値も、M_PIとしてmath.hの中で定義されている。 このプログラム pi.cpp

#include <math.h>  /* M_PI */
#include <stdio.h> /* printf */
int main(void)
{
  printf("M_PI=%.4f\n", M_PI);
  printf("M_PI=%f\n", M_PI);
  printf("M_PI=%.10f\n", M_PI);
  printf("M_PI=%.15f\n", M_PI);
  return 0;
}
を作成し、コンパイルする。 エラーが発生しなくて、うまくいけば、 UNIX系のプログラミング環境下で、 実行ファイルa.outができる。

./a.out [returnキー入力] を実行

これは、メイン関数に引数がない場合の実行方法だ。 目の前の画面に、
M_PI=3.1416
M_PI=3.141593
M_PI=3.1415926536
M_PI=3.141592653589793
と表示される。

実行環境だと、特に何も指定せずに「%f」だけだと、 小数点以下6桁表示となるようだ。
「%.4f」 小数点以下4桁表示
「%.15f」 小数点以下15桁表示

double 型の精度だと、せいぜいこれくらいが正確な値である。 これ以上、小数点以下の桁を表示しても、double 型の精度しかないので、 でたらめな値が表示されるだろう。

まとめ

円周率は、math.hをインクルードして、 M_PIを使う。

参考

円周率 1,000,000桁 (「%f」の桁数を増やしても、でたらめ表示となるのを確認してみよう)
kurihara @ ect.niihama-nct . ac . jp