如何在C#中定义的范围之间生成随机百分比?
我是C#和编程的新手,一般来说,我很难从定义的范围(即.5和1.0之间)生成随机百分比 我已经成功地生成了随机整数变量,但是,我的随机百分比代码不起作用:如何在C#中定义的范围之间生成随机百分比?,c#,C#,我是C#和编程的新手,一般来说,我很难从定义的范围(即.5和1.0之间)生成随机百分比 我已经成功地生成了随机整数变量,但是,我的随机百分比代码不起作用: Random r = new Random(); double percentage = r.Next(.5, 1.0); WriteLine(percentage); 我期望输出介于.5和1之间,但我得到以下错误: Compilation error (line 9, col 23): The best overloaded method
Random r = new Random();
double percentage = r.Next(.5, 1.0);
WriteLine(percentage);
我期望输出介于.5和1之间,但我得到以下错误:
Compilation error (line 9, col 23): The best overloaded method match for 'System.Random.Next(int, int)' has some invalid arguments
Compilation error (line 9, col 30): Argument 1: cannot convert from 'double' to 'int'
Compilation error (line 9, col 34): Argument 2: cannot convert from 'double' to 'int'
第9行是指我提供的最后一行代码,其中写入了百分比变量。提前感谢您的帮助 r.Next()
只给出整数。但是有r.NextDouble()
,但它只提供0.0
和1.0
之间的值。因此,您需要自己将其置于所需的范围内:
double percentage = min + (max - min) * r.NextDouble();
使用
min=0.5
和max=1.0
时,此代码对我来说100%有效
double one=0.5;
double two=1;
double Res=0;
Random rand = new Random();
Res = Math.Round(one + rand.NextDouble() * (two - one), 1); \\ This 1 is for rounding to minimum digit 1==> .7 , if 2==> .75 ... and so on.
MessageBox.Show(Res.ToString());
^_^错误说明了什么?试着看一下文档。任何时候你“遇到错误”都需要。你的代码不工作,
\\
不是注释,one
和two
的名称很糟糕。此外,OP不需要任何舍入。如果你四舍五入,那么就会出现分配问题:首先,你得到0.2的几率是得到0.1的几率的两倍,双倍百分比=r.Next(.5,1.0);/。5表示最小界限,1.0表示最大界限。很抱歉出现评论错误,因为我后来从记事本中添加了它。舍入过程是可选的,因此您可以根据需要进行自定义。