我正在尝试返回0到1之间的随机数,但它总是返回0。
代码:
int rnd = new Random().Next(0, 1);
答案 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)
0
和1
之间没有整数。由于下限是包含性的,上限是排他性的,因此您将始终获得0
。您应该改用NextDouble
:
double rnd = new Random().NextDouble();