C#のDouble.Equals()メソッドとは?使い方をサンプルコード付きで解説
C#のDouble.Equals()メソッドは、2つのDoubleインスタンスが同じ値を表しているかどうかを判定し、その結果をbool型で返すメソッドです。値が等しければtrue、異なっていればfalseが返ります。
構文
Double.Equals()メソッドには、以下の2つのオーバーロードが用意されています。
public bool Equals (double obj); public override bool Equals (object ob);
1つ目の構文のobjパラメータは、このインスタンスと比較するDoubleオブジェクトを指定します。一方、2つ目の構文のobjパラメータは、このインスタンスと比較する任意のオブジェクトを指定します。
2つのオーバーロードの違い
Equals(double)は比較対象が明確にdouble型であるため高速に動作します。一方、Equals(object)では引数がDouble型かどうかの判定が行われ、Double以外の型が渡された場合、たとえ数値が同じでもfalseが返される点に注意が必要です。
使用例1:double型同士の比較
まずは、double型の値同士を比較する基本的な例を見てみましょう。
using System;
public class Demo {
public static void Main() {
double d1 = 150d;
double d2 = 150d;
Console.WriteLine("Double1 Value = "+d1);
Console.WriteLine("Double2 Value = "+d2);
Console.WriteLine("Are both the double values equal? = "+d1.Equals(d2));
}
}
出力結果
Double1 Value = 150 Double2 Value = 150 Are both the double values equal? = True
この例では、変数d1とd2はどちらも150という同じ値を持っているため、Equals()メソッドはTrueを返します。
使用例2:object型との比較
次に、object型の値と比較した場合の動作を確認してみましょう。
using System;
public class Demo {
public static void Main() {
double d1 = 150d;
object ob1 = 1/2;
Console.WriteLine("Double1 Value = "+d1);
Console.WriteLine("Object Value = "+ob1);
Console.WriteLine("Are both the values equal? = "+d1.Equals(ob1));
}
}
出力結果
Double1 Value = 150 Object Value = 0 Are both the values equal? = False
この例では、ob1には整数同士の除算「1/2」の結果である0が格納されています。d1(150)とob1(0)の値が異なるため、Equals()メソッドはFalseを返します。
注意点
Equals(object)を使用する場合、引数がボックス化されたdouble(Double型)でないと、値が同じであってもfalseが返されます。また、C#では整数同士の除算は小数点以下が切り捨てられるため、「1/2」は0になることにも留意してください。意図した比較を行うためには、型と値の両方を意識することが重要です。
-
C#のUInt16.Equalsメソッドとは?使い方をサンプルコード付きで解説
C#のUInt16.Equals()メソッドは、現在のインスタンスが指定したオブジェクトまたはUInt16(16ビット符号なし整数)の値と等しいかどうかを示すbool値を返すメソッドです。構文UInt16.Equals()メソッドには、以下の2種類の構文があります。public override bool Equals (object ob); public bool Equals (ushort ob);1つ目の構文のパラメータobは、このインスタンスと比較する対象のオブジェクトです。2つ目の構文のパラメータobは、このインスタンスと比較する16ビット符号なし整数(ushort)です。戻り値
-
C#のUInt16.CompareTo()メソッドの使い方をサンプルコード付きで解説
C#のUInt16.CompareTo()メソッドは、現在のインスタンスと指定されたオブジェクトまたはUInt16値を比較し、両者の相対的な大小関係を示す整数値を返します。数値の大小判定やソート処理などで活用できる便利なメソッドです。 構文 UInt16.CompareTo()メソッドの構文は以下の2種類があります。 public int CompareTo (object val); public int CompareTo (ushort val); 1つ目の構文では、比較対象として任意のオブジェクトを引数に指定します。2つ目の構文では、比較対象として符号なし整数(ushort)を直接指定