double型とは?
C#のdouble型は、小数点を含む数値を扱うためのデータ型です。
例えば、消費税の計算で「1,980円の8%は158.4円」となったり、円の面積を求めるために「半径 × 半径 × 3.14」のように計算したり、プログラムでは小数点以下の細かい数値を使いたい場面がたくさんあります。
double型は、そのような整数では表せない数値を扱うときに使います。
double型の特徴
double型は専門用語で「倍精度浮動小数点数」と呼ばれますが、その特徴を分かりやすくまとめると、次のとおりです。
- 小数点以下の細かい数値を扱うことができる
- 約15〜17桁という高い精度で数値を表現できる
- 非常に小さな数から天文学的な大きな数まで扱える
- float型(単精度浮動小数点数)よりも精度が高い
- 科学技術計算や金融システムなど精密な計算で活躍する
C#で精度の高い計算を行う上で、double型は欠かせないデータ型です。
基本構文
double型の変数を宣言する方法はとてもシンプルです。データ型のdoubleに続けて、変数名を記述するだけで使えます。
次のコードは、weight(体重)とheight(身長)という2つのdouble型変数を宣言し、それぞれの値をコンソールに出力する例です。
出力結果
体重: 65.5kg
身長: 170.2cm
この例では、double型の変数weightとheightを宣言し、それぞれに数値を代入しています。Console.WriteLineで文字列と+演算子で連結すると、自動的に数値が文字列に変換され、体重と身長が読みやすい形式で表示されます。
四則演算も他の数値型と同様に行うことができ、計算結果も自動的にdouble型として処理されます。
出力結果
合計金額: 1650円
この例では、priceに1500.0、taxに0.1(10%)を代入し、price * (1 + tax)で税込金額を計算しています。結果の1650.0がtotalに代入され、Console.WriteLineで出力されます。小数を含む計算も自動的にdouble型で処理されます。
実用例
ここからは、C#のdouble型について、実践的な使い方をサンプルコードで見ていきましょう。小数点の計算など、日常でよく使う場面を想定したコードなので、ぜひ実際の開発にも応用してみてください。
基本的な計算処理
ペットの体重管理システムで、複数のイヌの体重を記録し、平均を計算する基本的な例です。
出力結果
イヌの平均体重: 12.1666666666667kg
この例では、3匹のイヌの体重をdouble型変数にそれぞれ格納し、平均値を算出するため、 (dog1 + dog2 + dog3) / 3;という式で計算しています。12.5 + 8.3 + 15.7の合計は36.5となり、3で割ると12.1666...という割り切れない小数になります。小数点以下の細かい値まで正確に保持できるのがdouble型の特徴です。
小数点以下の四捨五入
動物園でのエサの重量計算において、より見やすい形式で結果を表示する方法を示します。
出力結果
ライオンのエサ: 45.7892kg
四捨五入後: 45.79kg
この例では、Math.Round(food, 2)を使ってfoodの値を小数点第2位まで四捨五入しています。1つ目の引数に数値、2つ目に残す小数点以下の桁数を指定します。この場合、45.7892が45.79に丸められ、見やすい形式で出力されます。
配列を使った平均値計算
複数のネコの年齢データを配列で管理し、平均年齢を求める実用的な例です。
出力結果
ネコの平均年齢: 3.66歳
この例では、double型の配列に5匹のネコの年齢を格納し、for文で合計を計算しています。最後に合計値を要素数で割って平均を求め、結果を表示します。複数の数値データをまとめて処理する基本的な方法です。
条件分岐と組み合わせた処理
動物の体重に基づいて、適切な運動量を判定するシステムの例です。
出力結果
ウサギの運動量: 普通
この例では、rabbitWeightに3.2が設定されていて、最初のif (rabbitWeight > 4.0)は3.2 > 4.0となり、条件に当てはまらないため、次のelse if (rabbitWeight > 2.5)の評価に移ります。3.2 > 2.5は条件に当てはまるため、ブロック内のexercise = "普通";が実行されます。
繰り返し処理での累積計算
毎日のハムスターの走行距離を記録し、1週間の合計距離を計算する例です。
出力結果
ハムスターの合計走行距離: 11.8km
この例では、totalDistance変数を0で初期化し、日々の走行距離を加算しています。for文のループが始まると、dailyRun配列の最初の要素2.3がtotalDistanceに加算され、totalDistanceは2.3になります。次のループでは、その2.3に1.8が加算されて4.1になる、というように、ループが一周するごとに配列のデータが累積されていきます。最終的に全ての要素が加算されます。
関数の引数としての活用
鳥のケージの面積を計算する関数を定義し、double型の引数を受け取る例です。
出力結果
トリのケージ面積: 0.96㎡
この例では、CalculateArea関数で2つのdouble型の値を受け取り、その積を返しています。Mainメソッドでは幅1.2、高さ0.8を引数として渡し、計算結果の0.96をareaに代入して出力します。処理を関数化することで、コードの見通しや再利用性が高まります。
文字列変換と表示形式の指定
動物の医療費を通貨形式で表示する、実務でよく使われる処理例です。
出力結果
サルの医療費: ¥15,750.50
カスタム形式: 15750.50円
この例では、ToString()メソッドに書式指定子を渡して数値の表示形式を変えています。"C"は通貨形式で、¥や桁区切りを自動で付与します。"F2"は小数点以下2桁まで表示する形式です。実務では、金額などを見やすく整形する際によく使われます。
数学関数との組み合わせ
動物の運動場の円形エリアの面積を計算する、より実践的な数学計算の例です。
出力結果
ゾウの運動場面積: 95.03㎡
この例では、半径と円周率を使って円の面積を計算しています。Math.PIは円周率を表し、Math.Pow(radius, 2)で半径の2乗を求めます。最後にMath.Roundで小数点第2位まで丸め、結果を見やすく表示しています。
まとめ
C#のdouble型は、プログラミングの数値処理で中心的な役割を果たすデータ型です。基本構文から実用例まで学ぶことで、実践的なスキルが身に付きます。特に小数点を含む計算では欠かせない存在であり、適切な使い方をマスターすれば、より精密で実用的なプログラムを作成できます。
doubleが活躍する場面
- 科学計算や工学計算における高精度な数値処理
- 金融システムでの利率計算や価格計算
- ゲーム開発における座標計算や物理演算
double型を用いる上で、押さえておきたいポイントを覚えておきましょう。
重要なポイント
- 小数点以下の精度を保ちながら幅広い数値範囲に対応
- 四則演算や数学関数との組み合わせで複雑な計算が可能
- 条件分岐や繰り返し処理と連携した実用的なプログラム作成
初めてC#を学ぶ方も、紹介した内容を実際に書いて、基本的な使い方を試してみてください。ぜひdouble型をマスターして、より複雑で実用的なプログラムを作成できるようになりましょう。