カテゴリ: C# 更新日: 2026/05/12

C#の数値型をマスターしよう!int・double・decimalの違いと使い方

C#の数値型をマスターしよう!int・double・decimalの違いと使い方
C#の数値型をマスターしよう!int・double・decimalの違いと使い方

先生と生徒の会話形式で理解しよう

生徒

「C#で数字を扱いたいんですが、intとかdoubleとかdecimalって何が違うんですか?」

先生

「とても重要なポイントですね。C#では数値を扱うときに、用途によっていくつかの種類が用意されています。それぞれに特徴があるので、しっかり理解しておきましょう。」

生徒

「初心者にもわかるように、具体的な例を交えて教えてください!」

先生

「もちろんです!では、C#の数値型の基本から順番に学んでいきましょう。」

1. C#の数値型とは?

1. C#の数値型とは?
1. C#の数値型とは?

プログラミングでは、年齢や金額、点数、在庫数など、さまざまな場面で数字を扱います。C#(シーシャープ)では、こういった数字をコンピュータの中に保存したり計算したりするために、あらかじめ決められた「数値型(すうちがた)」というルールが用意されています。

数値型は、ざっくりいうと「どんな種類の数字を入れてよいか」を決めるデータ型です。イメージとしては、数字を入れておくための箱がいくつかあり、「この箱には整数だけ」「この箱には小数を入れてOK」「この箱はお金用」といった役割分担が決まっている感じです。

数値型にはたくさんの種類がありますが、プログラミング初心者の方がまずおさえておきたい基本の型は次の3つです。

  • int(整数型):小数点のない数字を扱う(人数・回数・年齢など)
  • double(倍精度浮動小数点型):小数点を含む数字をざっくり扱う(身長・体重・割合など)
  • decimal(高精度小数型):お金など、誤差が出てほしくない計算で使う

イメージしやすいように、3つの数値型を一度に並べた簡単なサンプルを見てみましょう。ここでは、C#の数値型の雰囲気をつかむことが目的なので、内容はとてもシンプルです。


int age = 20;          // 年齢:整数なのでint
double height = 170.5; // 身長:小数を含むのでdouble
decimal price = 980.50m; // 価格:お金なのでdecimal

Console.WriteLine(age);
Console.WriteLine(height);
Console.WriteLine(price);

このサンプルでは、ageは「20」という整数、heightは「170.5」という小数、priceは「980.50」という金額を表しています。それぞれの変数に、扱いたい数字の種類に合った数値型を選んでいる点がポイントです。C#で数値型を正しく選べるようになると、年齢や点数のような整数、身長や体重のような小数、売上や税金のような金額などを安心して扱えるようになります。

このあとで、int・double・decimalそれぞれの特徴や使い方を、具体的な例を交えながら順番に見ていきます。まずは「数字の種類に応じて、使う数値型を選ぶ」というイメージだけ抑えておきましょう。

2. int型(整数を扱う数値型)

2. int型(整数を扱う数値型)
2. int型(整数を扱う数値型)

intは、C#で最もよく使われる数値型のひとつで、「小数点を含まない数字」を扱うための型です。たとえば「10」「-5」「0」など、整数であればどんな値でも入れられます。日常生活で数を数えるときの感覚に近く、「りんごが3個」「部屋に椅子が4脚」「残り時間が15秒」といった“はっきりした数量”を扱うのに向いています。

初心者の方でもイメージしやすいように、簡単な例を見てみましょう。ここでは、買い物でカゴに入れた商品の個数を数えるイメージです。


int apples = 3;       // りんごの個数
int oranges = 2;      // オレンジの個数
int total = apples + oranges; // 合計個数を計算

Console.WriteLine("合計: " + total + "個");

合計: 5個

このように、intは“物の数”や“回数”、“年齢”、“点数”など、小数点が必要ない場面でとても使いやすい型です。

注意:int型では、小数点を含む数字(例:「3.14」や「1.5」)を保存することはできません。小数を扱いたいときは、後ほど紹介するdouble型やdecimal型を使いましょう。

3. double型(小数を扱える数値型)

3. double型(小数を扱える数値型)
3. double型(小数を扱える数値型)

doubleは、小数点を含む数字を扱うための代表的な数値型で、「3.14」「0.5」「150.75」のように、小数が必要な計算でとても活躍します。ジュースの容量「1.5リットル」や距離「12.8キロ」、体重「60.4kg」など、“きっちり整数では表せない値”を扱うときに便利です。

よりイメージしやすくするために、簡単なサンプルを見てみましょう。ここでは、1日の平均気温を計算する例を使っています。


double morning = 18.5;   // 朝の気温
double afternoon = 24.3; // 昼の気温
double average = (morning + afternoon) / 2; // 平均気温

Console.WriteLine("平均気温: " + average + "℃");

平均気温: 21.4℃

このように、double型は“小数を扱う”という点でとても便利ですが、一方で計算結果にわずかな誤差が出ることがあるという特徴も持っています。これは「浮動小数点型」と呼ばれる仕組みが原因で、人の目では気づかない程度ですが、正確さが重要な場面では注意が必要です。

ただし、日常的な計算や、温度・距離・割合・速度など、多少の誤差が許容されるケースではdouble型が最も扱いやすい型になります。

4. decimal型(お金の計算に向いている数値型)

4. decimal型(お金の計算に向いている数値型)
4. decimal型(お金の計算に向いている数値型)

decimalは、お金のように「ぴったりした計算」が必要なときに使います。

たとえば、スーパーで「りんごが1個120.50円」のような金額を計算する場面では、少しの誤差も許されません。そのようなときにdecimalを使います。


decimal price = 120.50m;
Console.WriteLine(price);

120.50

ポイント:decimal型の数字を書くときは、必ず最後に「m」をつけましょう。これは、「この数字はdecimal型ですよ」とC#に伝えるためです。

5. int・double・decimalの違いをまとめて比較

5. int・double・decimalの違いをまとめて比較
5. int・double・decimalの違いをまとめて比較

ここまで学んできた3つの数値型の違いを、簡単に比較してみましょう。

型の名前 小数点 使う場面 精度
int なし 人数、回数、年齢など 高い(整数)
double あり 長さ、重さ、割合など 中くらい(誤差あり)
decimal あり 金額、税率、精密計算 とても高い(誤差なし)

6. 実際に使い分けてみよう!

6. 実際に使い分けてみよう!
6. 実際に使い分けてみよう!

それでは、int・double・decimalを使って、実際にどんなふうに使い分けるのか見てみましょう。

次の例では、商品の価格を計算しています。


int quantity = 3;
decimal unitPrice = 150.75m;
decimal total = quantity * unitPrice;
Console.WriteLine("合計金額: " + total + "円");

合計金額: 452.25円

quantityは個数なのでint、unitPricetotalは金額なのでdecimalを使っています。

7. 型の変換(キャスト)も知っておこう

7. 型の変換(キャスト)も知っておこう
7. 型の変換(キャスト)も知っておこう

intやdoubleなど異なる型を一緒に計算するときは、型の変換(キャスト)が必要になることがあります。


int x = 10;
double y = 3.5;
double result = x + y;
Console.WriteLine(result);

13.5

このように、intとdoubleを足すときには、自動的にdouble型になります。

逆に、自分で明示的に変換することを明示的キャストと呼びます。


double d = 9.99;
int i = (int)d;
Console.WriteLine(i);

9

この例では、小数点以下が切り捨てられて「9」になります。

まとめ

まとめ
まとめ

C#の数値型にはいくつかの種類があり、それぞれ用途に応じて適切に使い分けることが大切です。この記事では、intdoubledecimalの3つの基本的な数値型を取り上げ、それぞれの特徴や使い方、違いについて丁寧に解説しました。

int型は整数を扱うのに最適で、人や物の個数、年齢、回数などの「数えられるもの」に向いています。一方、double型は小数を含む数値を扱うため、重さや距離、温度、割合といった「連続的な量」を扱うときに便利です。ただし、わずかな誤差が生じる可能性があるため注意が必要です。

そしてdecimal型は、金額や税率など、誤差のない正確な計算が求められる場面で活躍します。特に会計や金融アプリケーションではdecimalが重宝される理由は、この精度の高さにあります。C#ではdecimal型の値を表す際に、mサフィックスを使うのがポイントでしたね。

また、異なる型を一緒に使う場合には「型の変換(キャスト)」が必要になることもあり、自動的に変換される暗黙的キャストと、自分で変換を指定する明示的キャストの違いも知っておくと、今後のプログラミングで役立ちます。

以下に、intdoubledecimalを組み合わせた実践的な例を紹介します。


// 商品の合計金額と税込金額を計算する例
int itemCount = 4;
decimal itemPrice = 298.50m;
decimal subtotal = itemCount * itemPrice;
decimal taxRate = 0.1m;
decimal tax = subtotal * taxRate;
decimal total = subtotal + tax;

Console.WriteLine("小計:" + subtotal + "円");
Console.WriteLine("消費税:" + tax + "円");
Console.WriteLine("合計金額:" + total + "円");

小計:1194.00円
消費税:119.40円
合計金額:1313.40円

このように、数値型を正しく使い分けることで、安全で信頼性の高い計算処理が可能になります。金額計算ではdecimalを使い、整数や割合の計算にはintdoubleを選択することで、バグや誤差の少ないコードを書くことができます。

プログラムの中で「どの型を使うべきか?」を意識することは、初学者にとって大切な思考です。用途ごとの適材適所を理解し、適切に型を選ぶ練習を重ねていきましょう。

C#では型が厳密に管理されているため、型の知識をしっかり身につけることが品質の高いプログラムへの第一歩です。今回学んだ内容を繰り返し使いながら、自然に身につけていけると良いですね。

先生と生徒の振り返り会話

生徒

「int、double、decimalって、最初は全部数字だから同じに見えたけど、ぜんぜん用途が違うんですね!」

先生

「その通りです。数字の種類に応じて適切な型を使うことで、無駄な誤差やバグを防ぐことができます。」

生徒

「金額にはdecimalを使う理由もよくわかりました。ちょっとの誤差でもお金だと大問題ですもんね。」

先生

「そうですね。今後は処理内容に応じて、どの型が一番ふさわしいかを考えて選べるようになりましょう。」

生徒

「次からは何となくintで済ませず、しっかり考えて使い分けてみます!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

C#のint型とはどんな数値に使う型ですか?初心者向けに教えてください

C#のint型は、整数を扱うための数値型です。小数点を含まない数字、例えば1、100、-5などの個数や回数、年齢などを表す場面に最適です。

C#のdouble型は何のために使う数値型ですか?

C#のdouble型は、小数点を含む数値を扱うための型です。長さ、重さ、割合など、連続的な数値の計算に適しており、計算が高速ですが誤差が生じることがあります。

C#で数値型を間違って使うとプログラムにどんな影響がありますか?

不適切な数値型を使うと、計算誤差や型変換エラーが起きたり、意図した結果が得られなくなることがあります。適切な型選びがプログラムの安定性に直結します。
カテゴリの一覧へ
新着記事
New1
C#
C#のbool型を完全解説!初心者でもわかるtrueとfalseの基本と使い方
New2
C#
C#でバージョン管理を始めよう!Gitを使った基本操作を紹介
New3
C#
C# WPFのスタイルとリソースでデザインを効率化!初心者向け入門ガイド
New4
Azure
Azure Virtual MachinesのIPアドレス管理を徹底解説!パブリックとプライベートの使い分けルール
人気記事
No.1
Java&Spring記事人気No1
COBOL
COBOLのコンパイラと開発環境を徹底解説!初心者にもわかりやすい入門ガイド
No.2
Java&Spring記事人気No2
C#
C#の文字列を数値に変換する方法(int.Parse・TryParse)をわかりやすく解説!
No.3
Java&Spring記事人気No3
C#
C#のbool型を完全解説!初心者でもわかるtrueとfalseの基本と使い方
No.4
Java&Spring記事人気No4
C#
C#の日付型(DateTime)と基本的な使い方を解説|初心者向け入門ガイド
No.5
Java&Spring記事人気No5
C#
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
No.6
Java&Spring記事人気No6
C#
C#でswitch式を使う方法!C# 8.0以降の新機能を解説
No.7
Java&Spring記事人気No7
C#
C#のLINQでOrderByを使った並び替えを完全ガイド!初心者でもわかるソート方法
No.8
Java&Spring記事人気No8
C#
C#のWPFとは?XAMLでGUI開発を基礎から完全解説!初心者向けの入門ガイド