Поделиться через


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

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

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