Decimal.Compare(Decimal, Decimal) メソッド

定義

指定した 2 つの Decimal 値を比較します。

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

パラメーター

d1
Decimal

比較する最初の値。

d2
Decimal

比較する 2 番目の値。

返品

d1d2の相対値を示す符号付き数値。

戻り値 意味
0 未満 d1d2未満です。
ゼロ d1d2 が等しい。
0 より大きい d1d2 より大きい。

次の例では、いくつかの Decimal 値を比較します。 最初の比較は、 value2 変数に対して実行された減算演算にもかかわらず、2 つの値が等しいことを示します。 これは、 Decimal 型の有効桁数は 29 桁ですが、これら 2 つの値の差は 30 桁の有効桁数でのみ検出できるためです。

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

適用対象

こちらもご覧ください