BigInteger.Compare(BigInteger, BigInteger) Метод

Определение

Сравнивает два BigInteger значения и возвращает целое число, указывающее, меньше ли первое значение, равно или больше второго значения.

public:
 static int Compare(System::Numerics::BigInteger left, System::Numerics::BigInteger right);
public static int Compare(System.Numerics.BigInteger left, System.Numerics.BigInteger right);
static member Compare : System.Numerics.BigInteger * System.Numerics.BigInteger -> int
Public Shared Function Compare (left As BigInteger, right As BigInteger) As Integer

Параметры

left
BigInteger

Первое значение для сравнения.

right
BigInteger

Второе значение для сравнения.

Возвращаемое значение

Целое число со знаком, указывающее относительные значения left и right, как показано в следующей таблице.

Ценность Состояние
Меньше нуля left меньше right.
Нуля left равно right.
Больше нуля left больше right.

Комментарии

BigInteger Хотя тип не имеет фиксированного диапазона, сравнение значений не характеризуется отсутствием точности, характеризующей сравнение BigInteger чисел с плавающей запятой. В следующем примере сравниваются два BigInteger значения, которые отличаются по одному, и каждая из них имеет 1896 цифр. Метод Compare правильно сообщает, что два значения не равны.

BigInteger number1 = BigInteger.Pow(Int64.MaxValue, 100);
BigInteger number2 = number1 + 1;
string relation = "";
switch (BigInteger.Compare(number1, number2))
{
   case -1:
      relation = "<";
      break;
   case 0:
      relation = "=";
      break;
   case 1:
      relation = ">";
      break;
}
Console.WriteLine("{0} {1} {2}", number1, relation, number2);
// The example displays the following output:
//    3.0829940252776347122742186219E+1896 < 3.0829940252776347122742186219E+1896
let number1 = BigInteger.Pow(int64 System.Int64.MaxValue, 100)
let number2 = number1 + 1I
let relation = 
    match BigInteger.Compare(number1, number2) with
    | -1 -> "<"
    | 0 -> "="
    | 1 | _ -> ">"

printfn $"{number1} {relation} {number2}"
// The example displays the following output:
//    3.0829940252776347122742186219E+1896 < 3.0829940252776347122742186219E+1896
Dim number1 As BigInteger = BigInteger.Pow(Int64.MaxValue, 100)
Dim number2 As BigInteger = number1 + 1
Dim relation As String = ""
Select Case BigInteger.Compare(number1, number2)
   Case -1
      relation = "<"
   Case 0
      relation = "="
   Case 1
      relation = ">"
End Select            
Console.WriteLine("{0} {1} {2}", number1, relation, number2)
' The example displays the following output:
'    3.0829940252776347122742186219E+1896 < 3.0829940252776347122742186219E+1896

Применяется к

См. также раздел