Click or drag to resize

AstroUtilsRange Method

Flexible routine to range a number into a given range between a lower and an higher bound.

Namespace:  ASCOM.Astrometry.AstroUtils
Assembly:  ASCOM.Astrometry (in ASCOM.Astrometry.dll) Version: 3c9121baba46811fe6e53a58a05935662261416d
public double Range(
	double Value,
	double LowerBound,
	bool LowerEqual,
	double UpperBound,
	bool UpperEqual


Type: SystemDouble
Value to be ranged
Type: SystemDouble
Lowest value of the range
Type: SystemBoolean
Boolean flag indicating whether the ranged value can have the lower bound value
Type: SystemDouble
Highest value of the range
Type: SystemBoolean
Boolean flag indicating whether the ranged value can have the upper bound value

Return Value

Type: Double
The ranged nunmber as a double
InvalidValueExceptionThrown if the lower bound is greater than the upper bound.
InvalidValueExceptionThrown if LowerEqual and UpperEqual are both false and the ranged value equals one of these values. This is impossible to handle as the algorithm will always violate one of the rules!
UpperEqual and LowerEqual switches control whether the ranged value can be equal to either the upper and lower bounds. So, to range an hour angle into the range 0 to 23.999999.. hours, use this call:
RangedValue = Range(InputValue, 0.0, True, 24.0, False)

The input value will be returned in the range where 0.0 is an allowable value and 24.0 is not i.e. in the range 0..23.999999..

It is not permissible for both LowerEqual and UpperEqual to be false because it will not be possible to return a value that is exactly equal to either lower or upper bounds. An exception is thrown if this scenario is requested.

See Also