随机总是生成相同的数字
本文关键字:数字 随机 | 更新日期: 2023-09-27 18:30:11
我使用Random类生成任何随机整数,但它总是返回相同的数字
static Random rand = new Random();
public static int GetOrderID()
{
return rand.Next(Math.Abs(int.MinValue + 1), int.MaxValue);
}
请注意,随机类是静态的,并且是在函数
如果
Math.Abs(int.MinValue + 1)
等于
int.MaxValue
所以你的范围只包含一个数字。
很简单:调用Math.Abs
将删除数字中的符号。由于最小整数是-2,147,483,648
,其绝对值(由1
递增)是2,147,483,647
,其等于int.MaxValue
的绝对值。
所以当调用Math.Abs(int.MinValue + 1), int.MaxValue
时,您总是得到2,147,483,647
作为返回值,对吗?
如果您需要任意int,则可以使用rand.Next(int.MinValue, int.MaxValue)
而不使用Math.Abs
。对于任何非负整数,您可以使用不带任何参数的重载。