BigInteger.Compare(BigInteger, BigInteger) Yöntem

Tanım

İki BigInteger değeri karşılaştırır ve ilk değerin ikinci değere eşit mi yoksa ikinci değerden daha büyük mü olduğunu belirten bir tamsayı döndürür.

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

Parametreler

left
BigInteger

Karşılaştıracak ilk değer.

right
BigInteger

Karşılaştıracak ikinci değer.

Döndürülenler

Aşağıdaki tabloda gösterildiği gibi ve rightgöreli değerlerini gösteren imzalı tamsayıleft.

Değer Koşul
Sıfırdan küçük left değerinden rightküçüktür.
Sıfır left eşittir right.
Sıfırdan büyük left değerinden rightbüyüktür.

Açıklamalar

Türün BigInteger sabit aralığı olmasa da, değerlerin karşılaştırmaları kayan BigInteger noktalı sayıların karşılaştırmasını karakterize eden duyarlık eksikliği ile karakterize değildir. Aşağıdaki örnek, bir ile farklılık gösteren ve her birinin 1.896 basamağı olan iki BigInteger değeri karşılaştırır. yöntemi, Compare iki değerin eşit olmadığını doğru bir şekilde bildirir.

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

Şunlara uygulanır

Ayrıca bkz.