生成一个4-8位的随机数字

10
Random random = new Random();
int password = random.Next(10000);

这也可以生成两位数和三位数。 我该如何在C#中生成4-8位随机数字?


请查看以下链接:https://dev59.com/_mYr5IYBdhLWcg3wnrV0 - Rayhan.iit.du
8
你的目的是什么,0004 是否为一个四位数?00000008 是否为八位数?这些是否有关紧要? - doppelgreener
4个回答

34

从最小的4位数字开始,到最小的9位数字结束(不包括):

int password = random.Next(1000, 100000000);

3
您可以创建一个方法:
public static int GetRandom(int minDigits, int maxDigits)
{
    if (minDigits < 1 || minDigits > maxDigits)
        throw new ArgumentOutOfRangeException();

    return (int)random.Next(Math.Pow(10, minDigits - 1), Math.Pow(10, maxDigits - 1));
}

你可以这样做,但是为什么要这么做呢? - user529758

3
为了涵盖所有情况(例如数字小于1000,如0002)
Random RandomPIN = new Random();
var RandomPINResult = RandomPIN.Next(0, 9999).ToString();
RandomPINResult = RandomPINResult.PadLeft(4, '0');

1
为什么不这样写:Random RandomPIN = new Random(); var RandomPINResult = RandomEASPIN.Next(0, 9999).ToString("D4"); - Mir

2

使用 Guid.NewGuid().GetHashCode() 作为种子,生成一个随机数,然后将其格式化为4位数字字符串。


它使用经典的随机值,但作者意识到需要种子来获得真正的随机值。因此,下一步就是从一个区间生成一个整数,并确保它用预先添加(左填充)零(4位长度)进行格式化。 - baHI

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接