
C言語基礎|整数型と実数型
整数型と実数型 ― 数値の「型」を意識しよう
これまでのプログラムでは、int 型を使って整数を扱ってきましたね。
int 型はとても便利ですが、整数しか表せないという特徴があります。
一方、私たちの身の回りには、
- 平均点
- 身長
- 割合
- 温度
のように、小数を含む値がたくさんあります。
C言語では、こうした値を扱うために 実数型(浮動小数点型) が用意されています。
この記事では、
- 整数型と実数型の違い
- 演算結果がなぜ変わるのか
- 型を意識することの大切さ
を、プログラムを通して学んでいきましょう。

整数だけで平均を求めるとどうなる?
まずは、二つの点数を読み込んで、平均点を計算するプログラムを考えてみます。
内容は元の例と似ていますが、メッセージと変数名を変更しています。
サンプルプログラム
プロジェクト名:chap2-5-1 ソースファイル名:chap2-5-1.c
Visual Studio でこのプログラムを実行するには、SDLチェック設定を変更しておく必要があります。
1.プロジェクト名を右クリックして、「プロパティ」をクリックします。
2.「C/C++」→「全般」→「SDLチェック」を「いいえ」に切り替えて「OK」をクリックします。
// 二つの点数を読み込んで平均点を表示(整数版)
#include <stdio.h>
int main(void)
{
int score1, score2;
puts("二つのテストの点数を入力してください。");
printf("1回目の点数:");
scanf("%d", &score1);
printf("2回目の点数:");
scanf("%d", &score2);
printf("平均点は%d点です。\n", (score1 + score2) / 2);
return 0;
}実行例
二つのテストの点数を入力してください。
1回目の点数:41
2回目の点数:44
平均点は42点です。なぜ 42.5 ではなく 42 になるの?
41 と 44 の平均は、本来なら 42.5 ですよね。
それなのに、プログラムでは 42 と表示されました。
理由はとてもシンプルです。
👉 int 型は整数しか扱えないから
int 型の特徴
| 項目 | 内容 |
|---|---|
| 扱える値 | 整数のみ |
| 小数部分 | 保存できない |
| 除算結果 | 小数部は切り捨て |
このプログラムでは、
(score1 + score2) / 2という計算をしていますが、
- score1 + score2 → 整数
- 2 → 整数
- 整数 ÷ 整数 → 整数
というルールで計算され、小数部分は自動的に切り捨てられます。
( ) が演算の順序を決めている
ここで使われている ( ) は、演算の順序を明確にするための記号です。
演算順序の違い
| 式 | 意味 |
|---|---|
| (score1 + score2) / 2 | 合計を求めてから 2 で割る |
| score1 + score2 / 2 | score2 を 2 で割ってから加算 |
C言語では、加算よりも乗除算のほうが優先されます。
そのため、意図した計算を行うには ( ) を使うことがとても大切です。
実数を扱う double 型とは?
では、平均を 42.5 のように正しく表示したい場合はどうすればよいでしょうか。
そこで登場するのが double 型 です。
int 型と double 型の違い
| 型 | 扱える値 | 例 |
|---|---|---|
| int | 整数 | 10, -3, 42 |
| double | 実数 | 3.14, 42.5, -0.01 |
double 型を使うことで、小数を含む計算結果を正しく扱えるようになります。
型を意識することが大切
この例から分かる大事なポイントは次の2つです。
- 同じ計算式でも、型が違うと結果が変わる。
- 演算結果の型は、オペランドの型に影響される。
プログラムが「間違っている」のではなく、
型のルールどおりに正しく動いている、という点がとても重要です。
今後は、
- 実数の平均
- 割合や比率
- 型の変換(キャスト)
といった内容につながっていきますので、
「この値は整数? 実数?」と考えるクセを、ここで身につけておきましょう 。
