Decimal.Compare(Decimal, Decimal) Metodo

Definizione

Confronta due valori Decimal specificati.

public:
 static int Compare(System::Decimal d1, System::Decimal d2);
public static int Compare (decimal d1, decimal d2);
static member Compare : decimal * decimal -> int
Public Shared Function Compare (d1 As Decimal, d2 As Decimal) As Integer

Parametri

d1
Decimal

Primo valore da confrontare.

d2
Decimal

Secondo valore da confrontare.

Restituisce

Numero con segno che indica i valori relativi di d1 e d2.

Valore restituito Significato
Minore di zerod1 è minore di d2.
Zerod1 e d2 sono uguali.
Maggiore di zerod1 è maggiore di d2.

Esempio

Nell'esempio seguente vengono confrontati diversi Decimal valori. Si noti che il primo confronto indica che i due valori sono uguali nonostante l'operazione di sottrazione eseguita sulla value2 variabile. Ciò è dovuto al fatto che il Decimal tipo ha 29 cifre di precisione, mentre è possibile rilevare una differenza tra questi due valori solo con 30 cifre di precisione.

using System;

public enum Relationship
{  LessThan = -1, Equals = 0, GreaterThan = 1 }

public class Example
{
   public static void Main()
   {
      decimal value1 = Decimal.MaxValue;
      decimal value2 = value1 - .01m;
      Console.WriteLine("{0} {2} {1}", value1, value2,
                        (Relationship) Decimal.Compare(value1, value2));

      value2 = value1 / 12m - .1m;
      value1 = value1 / 12m;
      Console.WriteLine("{0} {2} {1}", value1, value2,
                        (Relationship) Decimal.Compare(value1, value2));

      value1 = value1 - .2m;
      value2 = value2 + .1m;
      Console.WriteLine("{0} {2} {1}", value1, value2,
                        (Relationship) Decimal.Compare(value1, value2));
   }
}
// The example displays the following output:
//     79228162514264337593543950335 Equals 79228162514264337593543950335
//     6602346876188694799461995861.2 GreaterThan 6602346876188694799461995861.1
//     6602346876188694799461995861.0 LessThan 6602346876188694799461995861.2
open System

type Relationship =
    | LessThan = -1
    | Equals = 0
    | GreaterThan = 1

[<EntryPoint>]
let main _ =
    let value1 = Decimal.MaxValue
    let value2 = value1 - 0.01m
    printfn $"{value1} {Decimal.Compare(value1, value2) |> enum<Relationship>} {value2}"

    let value2 = value1 / 12m - 0.1m
    let value1 = value1 / 12m
    printfn $"{value1} {Decimal.Compare(value1, value2) |> enum<Relationship>} {value2}"

    let value1 = value1 - 0.2m
    let value2 = value2 + 0.1m
    printfn $"{value1} {Decimal.Compare(value1, value2) |> enum<Relationship>} {value2}"

    0

// The example displays the following output:
//     79228162514264337593543950335 Equals 79228162514264337593543950335
//     6602346876188694799461995861.2 GreaterThan 6602346876188694799461995861.1
//     6602346876188694799461995861.0 LessThan 6602346876188694799461995861.2
Public Enum Relationship As Integer
    LessThan = -1
    Equals = 0
    GreaterThan = 1
End Enum

Module Example
   Public Sub Main()
      Dim value1 As Decimal = Decimal.MaxValue
      Dim value2 As Decimal = value1 - .01d
      Console.WriteLine("{0} {2} {1}", value1, value2, 
                        CType(Decimal.Compare(value1, value2), Relationship))   
   
      value2 = value1 / 12d - .1d
      value1 = value1 / 12d
      Console.WriteLine("{0} {2} {1}", value1, value2, 
                        CType(Decimal.Compare(value1, value2), Relationship))   
   
      value1 = value1 - .2d
      value2 = value2 + .1d
      Console.WriteLine("{0} {2} {1}", value1, value2, 
                        CType(Decimal.Compare(value1, value2), Relationship))   
   End Sub
End Module
' The example displays the following output:
'     79228162514264337593543950335 Equals 79228162514264337593543950335
'     6602346876188694799461995861.2 GreaterThan 6602346876188694799461995861.1
'     6602346876188694799461995861.0 LessThan 6602346876188694799461995861.2

Si applica a

Vedi anche