Random number generation

hi,

I want to generate a random number more than  10 digit (like in below code). But return value was always low than  10 digit.
 What is the  error?
 How can I generate random number more than 10 digit? (expect a code sample).
mt_rand(1000000000000, 9999999999999);

Open in new window

LVL 3
shaf81Asked:
Who is Participating?
 
Beverley PortlockConnect With a Mentor Commented:
The random number generated is a 32bit integer. That limits it to 9 digits maximum. Of course you could just stick two 5 digit randoms together. They are random after all...

echo mt_rand(10000,99999) . mt_rand(10000,99999) ;

0
 
QEMSConnect With a Mentor Commented:
Taken from http://www.alt-php-faq.org/local/28/ 

To generate a random number between 0 and 100 do this:

srand((double)microtime()*1000000);  
echo rand(0,100);

So substitute relevant numbers above.

See also:
http://uk3.php.net/manual/en/function.rand.php
0
 
Beverley PortlockConnect With a Mentor Commented:
[fx: slaps head]

Doh! 2^32 is 10 digits, not 9. That means you could generate the numbers directly in a smaller range

echo mt_rand( 1000000000, 2147483647 );

2147483647 is as big as you get in signed 32bit integers
0
 
MathiasConnect With a Mentor IT SpecialistCommented:
mt_rand() gives you an int :-) What's the largest value for an int? Right, 2147483647.
http://www.php.net/manual/de/function.mt-getrandmax.php

You have to write your own randomizer to get numbers greater than integer.

0
 
Chris HarteConnect With a Mentor ThaumaturgeCommented:
This will give you a 15 digit number
$i = 1;
while ($i < 16)
{
    $x = $x.mt_rand(0, 9);
    $i++;    
}
echo $x;

Open in new window

0
All Courses

From novice to tech pro — start learning today.