Udostępnij za pośrednictwem


BigInteger.Compare(BigInteger, BigInteger) Metoda

Definicja

Porównuje dwie BigInteger wartości i zwraca liczbę całkowitą wskazującą, czy pierwsza wartość jest mniejsza niż, równa, czy większa niż druga wartość.

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

Parametry

left
BigInteger

Pierwsza wartość do porównania.

right
BigInteger

Druga wartość do porównania.

Zwraca

Podpisana liczba całkowita wskazująca względne wartości left i right, jak pokazano w poniższej tabeli.

Wartość Warunek
Mniej niż zero left wartość jest mniejsza niż right.
Zero left rightrówna się .
Większe od zera left wartość jest większa niż right.

Uwagi

BigInteger Chociaż typ nie ma stałego zakresu, porównania wartości nie charakteryzują się brakiem dokładności, która charakteryzuje porównanie BigInteger liczb zmiennoprzecinkowych. W poniższym przykładzie porównaliśmy dwie BigInteger wartości, które różnią się jedną, a każda z nich ma 1896 cyfr. Metoda Compare poprawnie zgłasza, że dwie wartości nie są równe.

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

Dotyczy

Zobacz też