C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のSingle.Equals()メソッドの使い方をサンプルコードで解説

C#におけるSingle.Equals()メソッドは、2つのSingle(float)型のインスタンスが同じ値を表しているかどうかを判定し、その結果をbool値で返すメソッドです。浮動小数点数同士の比較を行いたい場合に活用できます。

構文

Single.Equals()メソッドには、以下の2つのオーバーロードが用意されています。

public bool Equals (float ob);
public override bool Equals (object ob);

どちらの構文においても、引数obには現在のインスタンスと比較対象となるオブジェクトを指定します。1つ目はfloat型の値を直接比較する場合、2つ目はobject型として比較する場合に使用されます。

サンプルコード1:異なる値の比較

まず、異なるfloat型の値を比較する例を見てみましょう。

using System;
public class Demo {
    public static void Main() {
        float f1 = 15.9f;
        float f2 = 40.2f;
        Console.WriteLine("Value1 = " + f1);
        Console.WriteLine("Value2 = " + f2);
        Console.WriteLine("Are both the values equal? = " + f1.Equals(f2));
    }
}

実行結果

Value1 = 15.9
Value2 = 40.2
Are both the values equal? = False

この例では、f1(15.9)とf2(40.2)は異なる値であるため、Equals()メソッドはFalseを返します。

サンプルコード2:同じ値の比較

次に、同じ値を持つインスタンス同士を比較する例です。ここでは、片方をobject型として扱っています。

using System;
public class Demo {
    public static void Main() {
        float f1 = 10.9f;
        object f2 = 10.9f;
        Console.WriteLine("Value1 = " + f1);
        Console.WriteLine("Value2 = " + f2);
        Console.WriteLine("Are both the values equal? = " + f1.Equals(f2));
    }
}

実行結果

Value1 = 10.9
Value2 = 10.9
Are both the values equal? = True

この例では、f1とf2がどちらも10.9という同じ値を持つため、Equals()メソッドはTrueを返します。object型でボックス化された値との比較でも、正しく等価性が判定されることがわかります。

まとめ

Single.Equals()メソッドを使うことで、float型の値同士が等しいかどうかを簡単に判定できます。==演算子による比較と似ていますが、Equals()メソッドはIEquatableインターフェースを実装しており、ジェネリックコレクションなどでの比較処理にも対応しています。なお、浮動小数点数の比較では精度の問題が生じる可能性があるため、厳密な比較が必要な場面では注意が必要です。

  1. C#のUInt64.Equalsメソッドの使い方をサンプルコード付きで解説

    C#のUInt64.Equals()メソッドは、現在のインスタンスが指定されたオブジェクトまたはUInt64(64ビット符号なし整数)の値と等しいかどうかを判定し、その結果をbool型(true / false)で返します。数値の比較処理を行いたい場合に便利なメソッドです。構文UInt64.Equals()メソッドには、以下の2つのオーバーロードが用意されています。public override bool Equals (object ob); public bool Equals (ulong ob);1つ目の構文のパラメータ「ob」は、現在のインスタンスと比較する対象のオブジェクトです。2

  2. 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)です。戻り値