C#のSingle.CompareTo()メソッドの使い方を実例付きで解説
C#のSingle.CompareTo()メソッドは、現在のインスタンス(呼び出し元の値)を、指定されたオブジェクトまたは別のSingleインスタンスと比較し、両者の大小関係を示す整数値を返すメソッドです。
戻り値の意味は以下の通りです。
- 1つ目のインスタンスが2つ目より小さい場合:0未満の値
- 両者が等しい場合:0
- 1つ目のインスタンスが2つ目より大きい場合:0より大きい値
構文
このメソッドには2つのオーバーロードがあります。
public int CompareTo (float val); public int CompareTo (object val);
1つ目の構文のvalパラメータには、比較対象となる単精度浮動小数点数(float)を指定します。2つ目の構文では、比較対象として任意のオブジェクトを指定できます。
使用例1:float型同士の比較
まず、2つのfloat値を比較する基本的な例を見てみましょう。
using System;
public class Demo {
public static void Main(){
float f1 = 50.7f;
float f2 = 50.7f;
Console.WriteLine("Value1 = "+f1);
Console.WriteLine("Value1 = "+f2);
Console.WriteLine("Is f1 and f2 equal? = "+f1.CompareTo(f2));
}
}出力結果
Value1 = 50.7 Value1 = 50.7 Is f1 and f2 equal? = 0
両者の値が等しいため、CompareTo()メソッドは「0」を返しています。
使用例2:object型との比較
次に、object型にボックス化された値と比較する例を紹介します。戻り値を使って条件分岐を行うことで、大小関係を明確に判定できます。
using System;
public class Demo {
public static void Main(){
float f1 = 50.7f;
object f2 = 50.7f;
Console.WriteLine("Value1 = "+f1);
Console.WriteLine("Value1 = "+f2);
int res = f1.CompareTo(f2);
if (res > 0)
Console.WriteLine("f1 > f2");
else if (res < 0)
Console.WriteLine("f1 < f2");
else
Console.WriteLine("f1 = f2");
}
}出力結果
Value1 = 50.7 Value1 = 50.7 f1 = f2
戻り値resが0だったため、「f1 = f2」と表示されました。このように、CompareTo()メソッドの戻り値をif文で判定することで、数値の大小関係を柔軟に処理できます。
-
C#のUInt64.CompareTo()メソッドとは?構文と使い方を実例付きで解説
C#のUInt64.CompareTo()メソッドは、現在のインスタンス(呼び出し元のUInt64値)と、指定されたオブジェクトまたはUInt64値を比較し、両者の相対的な大小関係を示す整数値を返すメソッドです。UInt64型は64ビットの符号なし整数(範囲:0 ~ 18,446,744,073,709,551,615)を表すため、大きな正の数値同士の比較に適しています。構文UInt64.CompareTo()メソッドには、以下の2つのオーバーロードがあります。public int CompareTo(object val); public int CompareTo(ulong val);1
-
C#のUInt16.CompareTo()メソッドの使い方をサンプルコード付きで解説
C#のUInt16.CompareTo()メソッドは、現在のインスタンスと指定されたオブジェクトまたはUInt16値を比較し、両者の相対的な大小関係を示す整数値を返します。数値の大小判定やソート処理などで活用できる便利なメソッドです。 構文 UInt16.CompareTo()メソッドの構文は以下の2種類があります。 public int CompareTo (object val); public int CompareTo (ushort val); 1つ目の構文では、比較対象として任意のオブジェクトを引数に指定します。2つ目の構文では、比較対象として符号なし整数(ushort)を直接指定