Introduction
The main idea for this article is how to create random floating numbers in .NET. Before few days i faced problem for generating random real numbers for Stock markets and i searched for a code in CodeProject but i didn't found useful way for this problem.
The RandomFloat class contains properties that allow user to generate random real-integer numbers between specific range and flag to turn on/off real number generator.
Using the code
Turn on or off the real number generator by set the AllowFloating property to true or false, then call the override method NextDouble()
public class RandomFloat : Random
{
protected const int DEFAULT_MIN_VAL = 1;
protected const int DEFAULT_MAX_VAL = 10;
protected bool m_bAllowFloat;
protected int m_iMinVal = DEFAULT_MIN_VAL;
protected int m_iMaxVal = DEFAULT_MAX_VAL;
public RandomFloat()
{
}
public RandomFloat(bool bAllowFloat)
{
m_bAllowFloat = bAllowFloat;
}
public bool AllowFloating
{
get
{
return m_bAllowFloat;
}
set
{
m_bAllowFloat = value;
}
}
public int MinRange
{
get
{
return m_iMinVal;
}
set
{
m_iMinVal = value;
}
}
public int MaxRange
{
get
{
return m_iMaxVal;
}
set
{
m_iMaxVal = value;
}
}
public override double NextDouble()
{
int iRnd = Next(m_iMinVal, m_iMaxVal);
double fRnd = base.NextDouble();
if (m_bAllowFloat)
{
if (iRnd < 0)
fRnd = iRnd + (fRnd * -1);
else
fRnd += iRnd;
}
else
fRnd = iRnd;
if (fRnd > m_iMaxVal)
fRnd = m_iMaxVal;
return fRnd;
}
}