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