really big integer

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

•  Subject
• Author
• Posted on
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:

1.2345679012346E+308

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
know,

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:

<...SNIP...>

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.

--
Oli