DoubleComparer Class

Represents a comparer for double-precision floating-point numbers with specified tolerance.

Definition

Namespace: Numerics.NET
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 9.0.3
C#
public class DoubleComparer : IComparer, 
	IComparer<double>
Inheritance
Object  →  DoubleComparer
Implements
IComparer<Double>, IComparer

Remarks

Two apparently equivalent floating-point numbers may not compare equal because of differences in their least significant digits. This is usually caused by round-off error resulting from the finite precision of floating-point representations. For example, the C# expression, (double)1/3 == (double)0.33333, does not compare equal because the division operation on the left-hand side has maximum precision while the constant on the right-hand side is only precise to the visible digits.

Instead, determine if the two sides of a comparison are close enough to equal for your purposes. The DoubleComparer class lets you specify the tolerance within which two numbers are considered equal.

Constructors

DoubleComparer Initializes a new instance of the DoubleComparer class.

Properties

Tolerance Gets or sets the relative tolerance within which two numbers compare equal.

Methods

Compare Compares two Double values and returns whether one is less than, equal to or greater than the other.
EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetTypeGets the Type of the current instance.
(Inherited from Object)
MemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
ToStringReturns a string that represents the current object.
(Inherited from Object)

See Also