第8章へ戻る

第9章:浮動小数を含む演算の例

test1-2.cを一部変更してみました。

 1: /* test1-3.c*/ 
 2: #include <stdio.h>
 3: void main(void){
 4: float a,b,c,d,e,f;
 5:  a=10.0;
 6:  b=3.0;
 7:  c=a+b;
 8:  d=a-b;
 9:  e=a*b;
10:  f=a/b;
11:  printf("a=%f,b=%f\n",a,b);
12:  printf("a+b=%f\n",c);
13:  printf("a-b=%f\n",d);
14:  printf("a*b=%f\n",e);
15:  printf("a/b=%f\n",f);
16: }

4行目: 浮動小数型(float型)変数としてa,b,c,d,e,fの6つを定義する、ということを表しています。floatとはfloating(浮動小数)のことであり、-0.05、100.0、45.3というような小数値を代入できる変数という意味になります。

5-6行目: 浮動小数型変数aに10.0を、浮動小数型変数bに3.0を代入します。

7-10行目: a+b,a-b,a*b,a/bの演算結果をそれぞれc,d,e,fに代入します。

11行目-15行目: 画面にprintf文を利用して浮動小数値を表示する場合、" "中では%fとして記述、" "の外で、%fに表示したい変数を記述します。

コンパイル、実行してみましょう。以下のように表示されるかどうか、確かめてみましょう。

a=10.0,b=3.0
a+b=13.0
a-b=7.0
a*b=30.0
a/b=3.333

課題1

aとbに様々な浮動小数値を代入させて実行してみましょう。すると、割り切れる数同士を選んだはずなのにa/bの結果が**.000001や、***.999999いうように表示される例があると思います。これは、floatでの計算が単精度と呼ばれる精度の範囲内で計算しているためで、より精度良く計算するにはdoubleという倍精度の変数として定義する必要があります。

課題2

変数a,b,c,d,e,fを倍精度として定義しなおして実行させてみましょう。4行目を
 double a,b,c,d,e,f;
と書き直し、さらに各printf文中の%fを%lfに書き直して下さい。画面に倍精度表示を行うためには%lfとする必要があります。

追記

Cで扱うことのできる変数としてint, float, doubleがあることを知りました。この他にもchar, long int, short intがあります。これらC言語で利用できる変数については後日詳細に説明します。

第1章へ 第2章へ 第3章へ 第4章へ 第5章へ 第6章へ 第7章へ

第8章へ戻る

第10章へ