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

时间:2019-04-15 01:01:21

标签: c#

我是C#和程序设计的新手,我无法在定义的范围内(即.5到1.0之间)生成随机百分比

我已经成功生成了一个随机的int变量,但是,我的随机百分比代码无法正常工作:

Random r = new Random();
double percentage = r.Next(.5, 1.0);
WriteLine(percentage);

我期望输出介于0.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行指的是我提供的最后一行代码,其中写入了百分比变量。预先感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

r.Next()仅为您提供整数。但是有r.NextDouble(),但是它只给您一个介于0.01.0之间的值。因此,您需要自己将其置于所需的范围内:

double percentage = min + (max - min) * r.NextDouble();

带有min = 0.5max = 1.0

答案 1 :(得分:-1)

此代码对我有效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());

^ _ ^