生成0到1之间的随机数总是返回0 [重复]

问题描述 投票:-1回答:2

这个问题在这里已有答案:

我试图在0和1之间返回一个随机数,但它总是返回0。

码:

int rnd = new Random().Next(0, 1);
c# random
2个回答
5
投票

Random.Next采用包含最小值和最大值 - 因此Random.Next(0, 1)唯一可能的结果是0。

如果您尝试生成零或1,例如硬币翻转,请使用:

int result = new Random().Next(0, 2);

要生成介于0和1之间的数字,请将其更改为:

double result = new Random().NextDouble(0, 1);

从你的例子中可以很难说,正如你所说的那样“之间”,但是将结果分配给int,并调用返回int的函数。


3
投票

01之间没有整数。由于下限是包含的,上限是独占的,所以你总是得到一个0。你应该使用NextDouble代替:

double rnd = new Random().NextDouble();
© www.soinside.com 2019 - 2024. All rights reserved.