我正在做一个程序,在那里搜索产品的批号。我希望批号是一个从00开始的随机6位代码,例如002142;目前它只生成一个随机的6位代码。下面是我尝试过的代码:
public string getRandomNumber()
{
Random random = new Random(100000);
string randomNumber = random.Next(999999).ToString("D6");
return randomNumber;
}
发布于 2016-08-08 08:44:30
为什么每个人都要创造6位数字?真正需要的是创建4和连接。
int random = new Random().Next(1000, 9999);
string code = "00" + random.ToString();
编辑:
谢谢你标记为正确答案,但我的代码是错误的。如果不将最小值传递给下一个方法,则可以得到从1到999的数字,这是您不想要的。我编辑了我的答案。希望现在什么都不晚。
发布于 2016-08-08 08:44:14
public string getRandomNumber()
{
Random random = new Random();
string randomNumber = "00"+random.Next(10000).ToString("D4");
return randomNumber;
}
您不应该在随机中设置一个fix种子,因为它总是会生成相同的随机数序列。例如,如果您在循环中调用您的函数,它将始终返回相同的数字,因此不是随机的。
另外,Next()函数中的参数是上界排他性的,所以使用10000代替9999,这样也可以得到9999作为随机数。
发布于 2016-08-08 08:39:28
您编写了.Next(999999)
,所以我假设您需要从0到999999的随机值。
首先,您应该编写1000000
,因为.Next()
确定一个从0到独占输入值的随机数。
那你应该
替换
string randomNumber = random.Next(1000000).ToString("D6");
使用
string randomNumber = random.Next(999999).ToString().PadLeft(6, '0');
用0填充缺失的数字
https://stackoverflow.com/questions/38824625
复制相似问题