如何在C#中定义的范围之间生成随机百分比?

如何在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

我是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 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表示最大界限。很抱歉出现评论错误,因为我后来从记事本中添加了它。舍入过程是可选的,因此您可以根据需要进行自定义。