生成介于0和1之间的随机数总是返回0

时间:2019-02-16 20:24:40

标签: c# random

我正在尝试返回0到1之间的随机数,但它总是返回0。

代码:

int rnd = new Random().Next(0, 1);

2 个答案:

答案 0 :(得分:5)

Random.Next花费的时间是 inclusive ,最大值是 exclusive -因此,Random.Next(0, 1)唯一可能的结果是0。

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

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

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

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

很难从您的示例中看出,因为您说的是“之间”,但是将结果分配给int,并调用返回int的函数。

答案 1 :(得分:3)

01之间没有整数。由于下限是包含性的,上限是排他性的,因此您将始终获得0。您应该改用NextDouble

double rnd = new Random().NextDouble();