Compartir vía


BigInteger.Compare(BigInteger, BigInteger) Método

Definición

Compara dos valores BigInteger y devuelve un entero que indica si el primer valor es menor, igual o mayor que el segundo.

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

Parámetros

left
BigInteger

Primer valor que se va a comparar.

right
BigInteger

Segundo valor que se va a comparar.

Devoluciones

Entero con signo que indica los valores relativos de left y right, como se muestra en la tabla siguiente.

Valor Condición
Menor que cero left es menor que right.
Cero left es igual que right.
Mayor que cero left es mayor que right.

Comentarios

Aunque el BigInteger tipo no tiene ningún intervalo fijo, las comparaciones de BigInteger valores no se caracterizan por la falta de precisión que caracteriza la comparación de números de punto flotante. En el ejemplo siguiente se comparan dos BigInteger valores que difieren en uno y que cada uno tiene 1896 dígitos. El Compare método informa correctamente de que los dos valores no son iguales.

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

Se aplica a

Consulte también