# 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????

LVL 8
###### Who is Participating?

RetiredCommented:
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

Middle School Assistant TeacherCommented:

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

RetiredCommented:
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

Author Commented:
what does the number 2147483647

represent..... can that be anything????
0

RetiredCommented:
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.