Quick Search
»

# AlmostEquals

### Syntax

```
public static bool AlmostEquals(this double double1, double double2, double precision)public static bool AlmostEquals(double double1, double double2, double precision)
```

### Parameter Description

 double1 First double value double2 Second double value precision Desirable precision when comparing

### Description

Sometimes there's a need to compare two values of type double to determine whether they are within a close approximation to each other. The following function taken from Stackoverflow will handle it.

### Example

Example below compares two double values for approximate equality within one tick value of an instrument.

Example using C# extension methods:

```
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;namespace WealthLab.Strategies
{
public class AlmostEqualsDemo : WealthScript
{
protected override void Execute()
{
double tick = Bars.SymbolInfo.Tick;
SetBarColors( Color.Silver, Color.Silver );

for(int bar = 1; bar < Bars.Count; bar++)
{
bool result =
( Close[bar].AlmostEquals(Low[bar],tick) || Close[bar].AlmostEquals(Low[bar]+tick,tick) ||
Open[bar].AlmostEquals(Low[bar],tick) || Open[bar].AlmostEquals(Low[bar]+tick,tick) );

if( result )
SetBarColor( bar, Color.Magenta );
}
}
}
}
```

Legacy syntax example:

```
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using WealthLab;
using WealthLab.Indicators;
using Community.Components;namespace WealthLab.Strategies
{
using c = Community.Components.Calculate;

public class AlmostEqualsDemo : WealthScript
{
protected override void Execute()
{
double tick = Bars.SymbolInfo.Tick;
SetBarColors( Color.Silver, Color.Silver );

for(int bar = 1; bar < Bars.Count; bar++)
{
bool result =
( c.AlmostEquals(Close[bar],Low[bar],tick) || c.AlmostEquals(Close[bar],Low[bar]+tick,tick) ||
c.AlmostEquals(Open[bar],Low[bar],tick) || c.AlmostEquals(Open[bar],Low[bar]+tick,tick) );

if( result )
SetBarColor( bar, Color.Magenta );
}
}
}
}
```