really big integer

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
I need to calculate the sum of the following numbers

1+ 11 + 111 + 1111 + ......+ 1111.....11111 (the last one is a number
made by 2002 1's )

so, I wrote

    $res =0;
    for ($i = 1; $i<2003; $i++){
        echo str_repeat("1", $i).'<br>';
        $res += str_repeat("1", $i);

    echo 'El resultado total es:<br>';
    echo $res;

All works pretty well, and after a really small piece of time, I get:


but the result seems to be wrong, beacause I do know (given that I have
a math proof), that it should have 224 1's inside, and as fas as I

1.2345679012346E+308 means 1.2345679012346 * 10^308

which obviously doesn't have such amount of 1's (in fact only has 2 )

Can anyone point me where is the mistake?

sdos - jm

Re: really big integer

julian_m said the following on 17/03/2006 20:02:
Quoted text here. Click to load it
Quoted text here. Click to load it

You can't fully represent a number with 2000-ish significant digits with  
normal integers or floats, nor can you represent a number bigger than  
~10^308 with floats.  So that's two reasons why this doesn't work!

You'll need to use an arbitrary-length integer library, e.g. BCMath.


Site Timeline