C#の数値型をマスターしよう!int・double・decimalの違いと使い方
生徒
「C#で数字を扱いたいんですが、intとかdoubleとかdecimalって何が違うんですか?」
先生
「とても重要なポイントですね。C#では数値を扱うときに、用途によっていくつかの種類が用意されています。それぞれに特徴があるので、しっかり理解しておきましょう。」
生徒
「初心者にもわかるように、具体的な例を交えて教えてください!」
先生
「もちろんです!では、C#の数値型の基本から順番に学んでいきましょう。」
1. C#の数値型とは?
プログラミングでは、数字を扱う場面がとても多くあります。C#(シーシャープ)には、「数値型(すうちがた)」と呼ばれる、数字を保存・計算するためのデータ型が用意されています。
数値型にはいくつかの種類がありますが、初心者の方がまず覚えておきたいのは次の3つです。
- int(整数型):小数点のない数字
- double(倍精度浮動小数点型):小数点を含む数字
- decimal(高精度小数型):お金などの正確な計算が必要なときに使う
2. int型(整数を扱う数値型)
intは「整数(しょうすう)」を扱うための数値型です。整数とは、小数点がない数字のことです。たとえば「10」や「-5」「0」などが該当します。
日常生活でいうと、「りんごが3個あります」のようなときに使います。
書き方の例を見てみましょう。
int number = 5;
Console.WriteLine(number);
5
注意:int型では、小数点を含む数字(たとえば「3.14」)は使えません。
3. double型(小数を扱える数値型)
doubleは、小数点を含む数字を扱いたいときに使います。たとえば「3.14」や「0.5」などの数値です。
ジュースの容量「1.5リットル」のように、小数が必要な場面で役立ちます。
double pi = 3.14;
Console.WriteLine(pi);
3.14
doubleは浮動小数点型(ふどうしょうすうてんがた)と呼ばれます。これは、計算のスピードは速いけれど、非常に小さい誤差が出ることがあります。
4. decimal型(お金の計算に向いている数値型)
decimalは、お金のように「ぴったりした計算」が必要なときに使います。
たとえば、スーパーで「りんごが1個120.50円」のような金額を計算する場面では、少しの誤差も許されません。そのようなときにdecimalを使います。
decimal price = 120.50m;
Console.WriteLine(price);
120.50
ポイント:decimal型の数字を書くときは、必ず最後に「m」をつけましょう。これは、「この数字はdecimal型ですよ」とC#に伝えるためです。
5. int・double・decimalの違いをまとめて比較
ここまで学んできた3つの数値型の違いを、簡単に比較してみましょう。
| 型の名前 | 小数点 | 使う場面 | 精度 |
|---|---|---|---|
| int | なし | 人数、回数、年齢など | 高い(整数) |
| double | あり | 長さ、重さ、割合など | 中くらい(誤差あり) |
| decimal | あり | 金額、税率、精密計算 | とても高い(誤差なし) |
6. 実際に使い分けてみよう!
それでは、int・double・decimalを使って、実際にどんなふうに使い分けるのか見てみましょう。
次の例では、商品の価格を計算しています。
int quantity = 3;
decimal unitPrice = 150.75m;
decimal total = quantity * unitPrice;
Console.WriteLine("合計金額: " + total + "円");
合計金額: 452.25円
quantityは個数なのでint、unitPriceとtotalは金額なのでdecimalを使っています。
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#の数値型にはいくつかの種類があり、それぞれ用途に応じて適切に使い分けることが大切です。この記事では、int・double・decimalの3つの基本的な数値型を取り上げ、それぞれの特徴や使い方、違いについて丁寧に解説しました。
int型は整数を扱うのに最適で、人や物の個数、年齢、回数などの「数えられるもの」に向いています。一方、double型は小数を含む数値を扱うため、重さや距離、温度、割合といった「連続的な量」を扱うときに便利です。ただし、わずかな誤差が生じる可能性があるため注意が必要です。
そしてdecimal型は、金額や税率など、誤差のない正確な計算が求められる場面で活躍します。特に会計や金融アプリケーションではdecimalが重宝される理由は、この精度の高さにあります。C#ではdecimal型の値を表す際に、mサフィックスを使うのがポイントでしたね。
また、異なる型を一緒に使う場合には「型の変換(キャスト)」が必要になることもあり、自動的に変換される暗黙的キャストと、自分で変換を指定する明示的キャストの違いも知っておくと、今後のプログラミングで役立ちます。
以下に、int・double・decimalを組み合わせた実践的な例を紹介します。
// 商品の合計金額と税込金額を計算する例
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を使い、整数や割合の計算にはintやdoubleを選択することで、バグや誤差の少ないコードを書くことができます。
プログラムの中で「どの型を使うべきか?」を意識することは、初学者にとって大切な思考です。用途ごとの適材適所を理解し、適切に型を選ぶ練習を重ねていきましょう。
C#では型が厳密に管理されているため、型の知識をしっかり身につけることが品質の高いプログラムへの第一歩です。今回学んだ内容を繰り返し使いながら、自然に身につけていけると良いですね。
生徒
「int、double、decimalって、最初は全部数字だから同じに見えたけど、ぜんぜん用途が違うんですね!」
先生
「その通りです。数字の種類に応じて適切な型を使うことで、無駄な誤差やバグを防ぐことができます。」
生徒
「金額にはdecimalを使う理由もよくわかりました。ちょっとの誤差でもお金だと大問題ですもんね。」
先生
「そうですね。今後は処理内容に応じて、どの型が一番ふさわしいかを考えて選べるようになりましょう。」
生徒
「次からは何となくintで済ませず、しっかり考えて使い分けてみます!」