はじめに
C# は強力なプログラミング言語であり、数値演算を扱う際には、適切なデータ型と演算子を理解することが非常に重要です。この記事では、C# における基本的な数値データ型と演算子を紹介し、数値計算の基礎をしっかりと押さえます。これから数値演算を行う C# プログラマーにとって必読の内容です。
C# の基本的な数値型
C# にはさまざまな数値型が用意されています。それぞれが異なる精度と範囲を持っているため、用途に応じて使い分けることが重要です。主な数値型には以下のものがあります。
整数型
int(整数型)
int
は最も一般的な整数型で、32 ビットの符号付き整数を格納します。範囲は -2,147,483,648 から 2,147,483,647 までです。
int a = 10; int b = -5; Console.WriteLine(a + b); // 出力: 5
long(長整数型)
long
は 64 ビットの整数型で、int
よりも広い範囲を扱います。範囲は -9,223,372,036,854,775,808 から 9,223,372,036,854,775,807 です。
long c = 123456789012345; Console.WriteLine(c); // 出力: 123456789012345
浮動小数点型
float(単精度浮動小数点型)
float
は 32 ビットの浮動小数点型で、比較的精度が低いですが、メモリ効率が高いです。精度は約 7 桁です。
float pi = 3.14159f; Console.WriteLine(pi); // 出力: 3.14159
double(倍精度浮動小数点型)
double
は 64 ビットの浮動小数点型で、float
よりも高い精度(約 15 桁)を持ちます。
double e = 2.718281828459045; Console.WriteLine(e); // 出力: 2.718281828459045
decimal(10進精度浮動小数点型)
decimal
は 128 ビットの浮動小数点型で、主に金額や高精度を必要とする計算に使用されます。float
や double
よりも精度が高いですが、計算速度は遅くなります。
decimal price = 19.99m; Console.WriteLine(price); // 出力: 19.99
型の選択
数値型を選ぶ際には、次の点を考慮します:
- 精度が重要な場合は
double
またはdecimal
を選択 - 範囲が広い整数を扱いたい場合は
long
- メモリ効率が必要で、範囲が狭くて良ければ
int
基本的な算術演算子
C# では、数値に対して基本的な算術演算を行うための演算子がいくつか用意されています。
加算演算子(+)
int sum = 5 + 3; Console.WriteLine(sum); // 出力: 8
減算演算子(-)
int diff = 10 - 3; Console.WriteLine(diff); // 出力: 7
乗算演算子(*)
int product = 4 * 3; Console.WriteLine(product); // 出力: 12
除算演算子(/)
整数型同士の除算の場合、結果は整数になります(小数点以下は切り捨て)。
int quotient = 10 / 3; Console.WriteLine(quotient); // 出力: 3
浮動小数点型同士の場合、小数点以下も含めて結果が得られます。
double quotient = 10.0 / 3.0; Console.WriteLine(quotient); // 出力: 3.3333333333333335
剰余演算子(%)
int remainder = 10 % 3; Console.WriteLine(remainder); // 出力: 1
演算子の優先順位
C# では演算子に優先順位があり、演算子が複数存在する場合、どの順番で計算されるかが決まっています。例えば、*
と +
の場合、乗算が加算よりも優先されます。
int result = 5 + 3 * 2; Console.WriteLine(result); // 出力: 11
括弧を使用して、優先順位を変更することができます。
int result = (5 + 3) * 2; Console.WriteLine(result); // 出力: 16
演算子オーバーロード
C# では、クラスや構造体に対して演算子をオーバーロードすることができます。これにより、独自のデータ型に対しても標準の演算子を使用できるようになります。例えば、複素数型に対して加算演算子をオーバーロードすることが可能です。
public class ComplexNumber { public double Real { get; set; } public double Imaginary { get; set; } public static ComplexNumber operator +(ComplexNumber a, ComplexNumber b) { return new ComplexNumber { Real = a.Real + b.Real, Imaginary = a.Imaginary + b.Imaginary }; } }
まとめ
C# の数値演算における基本的なデータ型と演算子を理解することは、効果的に数値計算を行うための第一歩です。これらの知識をしっかりと身につけて、より複雑な数値演算に進んでいきましょう。
次回は、数値演算における精度や丸め誤差について掘り下げて解説しますので、引き続きお楽しみに!
コメント