BigInteger.Compare(BigInteger, BigInteger) Metod

Definition

Jämför två BigInteger värden och returnerar ett heltal som anger om det första värdet är mindre än, lika med eller större än det andra värdet.

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

Parametrar

left
BigInteger

Det första värdet som ska jämföras.

right
BigInteger

Det andra värdet att jämföra.

Returer

Ett signerat heltal som anger de relativa värdena left för och right, enligt följande tabell.

Värde Tillstånd
Mindre än noll left är mindre än right.
Noll left är lika med right.
Större än noll left är större än right.

Kommentarer

BigInteger Även om typen inte har något fast intervall kännetecknas jämförelser av BigInteger värden inte av den brist på precision som kännetecknar jämförelsen av flyttalsnummer. I följande exempel jämförs två BigInteger värden som skiljer sig åt med ett och som var och en har 1 896 siffror. Metoden Compare rapporterar korrekt att de två värdena inte är lika med.

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

Gäller för

Se även