我是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行指的是我提供的最后一行代码,其中写入了百分比变量。预先感谢您的帮助!
答案 0 :(得分:3)
r.Next()
仅为您提供整数。但是有r.NextDouble()
,但是它只给您一个介于0.0
和1.0
之间的值。因此,您需要自己将其置于所需的范围内:
double percentage = min + (max - min) * r.NextDouble();
带有min = 0.5
和max = 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());
^ _ ^