実数はfloat/doubleで
int型では、1.2とか-3.5とかのような小数の値を扱うことができません。小数の値を扱うには、int型の代わりに浮動小数点型を用います。浮動小数点型には、次のようにfloatとdoubleの2つの型があります。
float | 単精度浮動小数点型 |
double | 倍精度浮動小数点型 |
floatとdoubleとは、扱える値の精度や使用するメモリのバイト数が違うだけで、プログラム上はどちらもほぼ同様に扱うことができます。
たとえば、double型の変数dを宣言するには、
と書きます。
浮動小数点型の変数の値をprintf()で表示するには、書式指定文字列として、
を使います。double型の変数dの値をprintf()で表示するには、
と書きます。%fという書式指定の場合、実際に表示されるのは小数点以下6桁までです。表示する値の小数点以下の桁数を変更したい場合は、%fの%とfの間に . と桁数を表す数字を入れます。たとえば、
と書くと、小数点以下12桁までが表示されます。
浮動小数点型の計算を行うプログラムの例(pi.c)をリスト4.3に示します。この例では、三角関数のtan()(タンジェント)の逆関数のatan()(逆タンジェント)を使って、円周率(π)の値を求めています。atan(1.0)はπ/4の値となるため、これを4倍すればπの値になります。
pi.cでは、atan()関数を使用するため、新しくmath.hというヘッダファイルをインクルードしています。
なお、atan()の引数の「1.0」は、浮動小数点型の定数値とする必要があるため、「1」ではなく「1.0」と書く必要があります。「1」と書いてしまうと整数型の定数となってしまい、atan()関数が正常に動作しなくなるので注意してください。
pi.cをコンパイルするには、これまでと違ってコマンドラインの右側に -lm というオプションを付ける必要があります(図4.3)。「-lm」は浮動小数点型ライブラリ(libm)とのリンクを指定するためのオプションです。pi.cの中で使用したatan()という関数は、このlibmの中に存在するのです。
なお、「-lm」オプションはライブラリのリンク順の関係で、ソースファイルのpi.cよりも右側に付けなければならないので注意してください。