生成随机数





1.00/5 (3投票s)
轻松生成随机实数(浮点数)或整数。

引言
这篇文章的核心思想是如何在 .NET 中生成随机浮点数。几天前,我在为股票市场生成随机实数时遇到了问题,并在 CodeProject 中搜索了代码,但没有找到解决此问题的有效方法。
RandomFloat 类
RandomFloat 类包含属性,允许用户在特定范围内生成随机实数或整数,以及一个标志来启用/禁用实数生成器。
使用代码
通过将 AllowFloating 属性设置为 true 或 false 来启用或禁用实数生成器,然后调用重写方法 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;
}
}