首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#需要一个以二0开头的六位数。

C#需要一个以二0开头的六位数。
EN

Stack Overflow用户
提问于 2016-08-08 08:37:16
回答 9查看 1.7K关注 0票数 1

我正在做一个程序,在那里搜索产品的批号。我希望批号是一个从00开始的随机6位代码,例如002142;目前它只生成一个随机的6位代码。下面是我尝试过的代码:

代码语言:javascript
运行
复制
 public string getRandomNumber()
    {
        Random random = new Random(100000);
        string randomNumber = random.Next(999999).ToString("D6");
        return randomNumber;
    }
EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2016-08-08 08:44:30

为什么每个人都要创造6位数字?真正需要的是创建4和连接。

代码语言:javascript
运行
复制
int random = new Random().Next(1000, 9999);
string code = "00" + random.ToString();

编辑:

谢谢你标记为正确答案,但我的代码是错误的。如果不将最小值传递给下一个方法,则可以得到从1到999的数字,这是您不想要的。我编辑了我的答案。希望现在什么都不晚。

票数 2
EN

Stack Overflow用户

发布于 2016-08-08 08:44:14

代码语言:javascript
运行
复制
public string getRandomNumber()
{
    Random random = new Random();
    string randomNumber = "00"+random.Next(10000).ToString("D4");
    return randomNumber;
}

您不应该在随机中设置一个fix种子,因为它总是会生成相同的随机数序列。例如,如果您在循环中调用您的函数,它将始终返回相同的数字,因此不是随机的。

另外,Next()函数中的参数是上界排他性的,所以使用10000代替9999,这样也可以得到9999作为随机数。

票数 3
EN

Stack Overflow用户

发布于 2016-08-08 08:39:28

您编写了.Next(999999),所以我假设您需要从0到999999的随机值。

首先,您应该编写1000000,因为.Next()确定一个从0到独占输入值的随机数。

那你应该

替换

代码语言:javascript
运行
复制
string randomNumber = random.Next(1000000).ToString("D6");

使用

代码语言:javascript
运行
复制
string randomNumber = random.Next(999999).ToString().PadLeft(6, '0');

用0填充缺失的数字

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38824625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档