我如何在一个范围内产生随机数?
当前回答
对于未来的读者,如果你想要一个范围内的随机数,请使用以下代码:
public double GetRandomNumberInRange(Random random,double minNumber, double maxNumber)
{
return random.NextDouble() * (maxNumber - minNumber) + minNumber;
}
用法:
Random r = new Random();
double num1 = GetRandomNumberInRange(r, 50, 100)
最小值和最大值之间的随机双精度
代码示例
其他回答
你可以试试
//for integers
Random r = new Random();
int rInt = r.Next(0, 100);
//for doubles
int range = 100;
double rDouble = r.NextDouble()* range;
看一看
随机类别,随机。Next方法(Int32, Int32)和Random。NextDouble方法
以下是Darrelk回答的更新版本。 它是使用c#扩展方法实现的。 它不会在每次调用此方法时分配内存(new Random())。
public static class RandomExtensionMethods
{
public static double NextDoubleRange(this System.Random random, double minNumber, double maxNumber)
{
return random.NextDouble() * (maxNumber - minNumber) + minNumber;
}
}
用法(确保导入包含RandomExtensionMethods类的命名空间):
var random = new System.Random();
double rx = random.NextDoubleRange(0.0, 1.0);
double ry = random.NextDoubleRange(0.0f, 1.0f);
double vx = random.NextDoubleRange(-0.005f, 0.005f);
double vy = random.NextDoubleRange(-0.005f, 0.005f);
喜欢的东西:
var rnd = new Random(DateTime.Now.Millisecond);
int ticks = rnd.Next(0, 3000);
除了生成整数和双精度精度的随机类,考虑:
生成(U)Int64和Decimal的(伪)随机约束值 c#随机提供程序类
对于未来的读者,如果你想要一个范围内的随机数,请使用以下代码:
public double GetRandomNumberInRange(Random random,double minNumber, double maxNumber)
{
return random.NextDouble() * (maxNumber - minNumber) + minNumber;
}
用法:
Random r = new Random();
double num1 = GetRandomNumberInRange(r, 50, 100)
最小值和最大值之间的随机双精度
代码示例
推荐文章
- 无法确定条件表达式的类型,因为'int'和<null>之间没有隐式转换
- 从实体框架中删除单个记录?
- 创建一个完成的任务
- 字典的字面符号在c# ?
- 随机字符串生成器返回相同的字符串
- 为什么Func<T,bool>而不是Predicate<T>?
- .NET中的Map和Reduce
- 我如何能使一个组合框不可编辑的。net ?
- .NET反射的成本有多高?
- 实体框架回滚并移除不良迁移
- 将流转换为字符串并返回
- 在c#中检查字符串是否只包含数字的最快方法
- IEquatable和重写Object.Equals()之间的区别是什么?
- 创建一个堆栈大小为默认值50倍的线程有什么危险?
- 转换JSON字符串到JSON对象c#