如何在C#中生成一个随机的10位数字?
我正在使用C#,我需要生成一个随机的10位数字。 到目前为止,我很幸运找到了表明最小值的例子。 我如何生成一个10位数的随机数,可以从0开始,(最初,我希望是random.Next(1000000000,9999999999)
但我怀疑这是我想要的)。
我的代码现在看起来像这样:
[WebMethod] public string GenerateNumber() { Random random = new Random(); return random.Next(?); }
**更新结束了这样做,
[WebMethod] public string GenerateNumber() { Random random = new Random(); string r = ""; int i; for (i = 1; i < 11; i++) { r += random.Next(0, 9).ToString(); } return r; }
如果你想要十个数字,但你允许以0开头,那么听起来你想要生成一个字符串,而不是一个长整数。
生成一个10个字符的字符串,其中每个字符从“0”中随机选择。“9”。
尝试(虽然不是绝对准确)
Random R = new Random(); return ((long)R.Next (0, 100000 ) * (long)R.Next (0, 100000 )).ToString ().PadLeft (10, '0');
使用此选项可以创建任何指定长度的随机数字
public string RandomDigits(int length) { var random = new Random(); string s = string.Empty; for (int i = 0; i < length; i++) s = String.Concat(s, random.Next(10).ToString()); return s; }
(1000000000,9999999999)不是随机的 – 你要求它不能以1开头,因此你已经将你的目标基数削减了10%。
Random是一个double,所以如果你想要一个整数,将它乘以1,000,000,000,然后将小数点后的数字放下。
private void button1_Click(object sender, EventArgs e) { Random rand = new Random(); long randnum2 = (long)(rand.NextDouble() * 9000000000) + 1000000000; MessageBox.Show(randnum2.ToString()); }
private static Random random = new Random((int)DateTime.Now.Ticks);//thanks to McAden public long LongBetween(long maxValue, long minValue) { return (long)Math.Round(random.NextDouble() * (maxValue - minValue - 1)) + minValue; }
//Ten digits public string CreateRandomNumber { get { //returns 10 digit random number (Ticks returns 16 digit unique number, substring it to 10) return DateTime.UtcNow.Ticks.ToString().Substring(8); } }
获得没有任何循环(或任何其他长度数字)的10位数字
private static readonly Random _rdm = new Random(); private string PinGenerator(int digits) { if (digits <= 1) return ""; var _min = (int)Math.Pow(10, digits - 1); var _max = (int)Math.Pow(10, digits) - 1; return _rdm.Next(_min, _max).ToString(); }
该函数计算第n位数的下限和上限。
要生成10位数字,请使用如下:
PinGenerator(10)
我试着写一个快速的:
private int GetNDigitsRandomNumber(int digits) { var min = 1; for (int i = 0; i < digits-1; i++) { min *= 10; } var max = min * 10; return _rnd.Next(min, max); }
Random random = new Random(); string randomNumber = string.Join(string.Empty, Enumerable.Range(0, 10).Select(number => random.Next(0, 9).ToString()));
我想出了这个方法,因为我不想使用Random方法:
public static string generate_Digits(int length) { var rndDigits = new System.Text.StringBuilder().Insert(0, "0123456789", length).ToString().ToCharArray(); return string.Join("", rndDigits.OrderBy(o => Guid.NewGuid()).Take(length)); }
希望这可以帮助。
在C#中生成一个随机的10位数字
Random RndNum = new Random(); int RnNum = RndNum.Next(1000000000,9999999999);