Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 356
  • Last Modified:

random numbers

I am trying to create random 22 digit numbers...

I tried the randomclass.Next with 22 9's but I get an error that int cannot be a long
Example code would be great.....


any ideas????






0
bman9111
Asked:
bman9111
  • 3
1 Solution
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
How about?

        private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = RandomNumber(22);
        }

        private string RandomNumber(byte length)
        {
            StringBuilder sb = new StringBuilder();
            Random R = new Random();
            for (int i = 1; i <= length; i++)
            {
                if (i == 1)
                {
                    sb.Append(R.Next(1, 10).ToString());
                }
                else
                {
                    sb.Append(R.Next(0, 10).ToString());
                }
            }
            return sb.ToString();
        }

or?

        private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = RandomNumber(22);
        }

        private string RandomNumber(byte length)
        {
            StringBuilder sb = new StringBuilder();
            do
            {
                sb.Append(Guid.NewGuid().ToString("N").ToLower()
                    .Replace("a","").Replace("b","").Replace("c","")
                    .Replace("d","").Replace("e","").Replace("f",""));
                if (sb[0] == '0')
                {
                    sb.Remove(0, 1);
                }
            } while (sb.Length < length);
            sb.Length = length;
            return sb.ToString();
        }
0
 
Fernando SotoCommented:
Hi bman9111;

Here is another way to do what you want.

        Dim rand As New Random(Now.Second())
        Dim rn As Decimal = rand.Next(1000000000, 2147483647)
        rn = (rn * 10000000000 + rand.Next(1000000000, 2147483647)) * 100 + rand.Next(100)
        Label1.Text = rn.ToString()

Fernando
0
 
Fernando SotoCommented:
And in C# it would be

        Random rand = new Random(DateTime.Now.Second);
        decimal rn = rand.Next(1000000000, 2147483647);
      rn = (rn * 10000000000 + rand.Next(1000000000, 2147483647)) * 100 + rand.Next(100);
      label1.Text = rn.ToString();


Fernando
0
 
bman9111Author Commented:
what does the number 2147483647

represent..... can that be anything????
0
 
Fernando SotoCommented:
Because the Random object only returns a positive integer number and integer range is between -2,147,483,648 to 2,147,483,647, 2147483647 is the largest integer value possible.

To your question, "can that be anything????"

In the code sample I gave it can be anything greater then 1000000000 but less then or equal to 2147483647. The reason is that you want a 22 digit number, so concatenating two 10 digit number and a two digit number will give a 22 digit number.
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now