Decimal.Compare(Decimal, Decimal) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Compares two specified Decimal values.
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
Parameters
- d1
- Decimal
The first value to compare.
- d2
- Decimal
The second value to compare.
Returns
A signed number indicating the relative values of d1
and d2
.
Return value | Meaning |
---|---|
Less than zero | d1 is less than d2 .
|
Zero | d1 and d2 are equal.
|
Greater than zero | d1 is greater than d2 .
|
Examples
The following example compares several Decimal values. Note that the first comparison indicates that the two values are equal despite the subtraction operation performed on the value2
variable. This is because the Decimal type has 29 digits of precision, whereas a difference between these two values can be detected only with 30 digits of precision.
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