Extremely Large Integers in PHP

Tyler Menezes picture Tyler Menezes · Sep 18, 2010 · Viewed 11k times · Source

Possible Duplicate:
Working with large numbers in PHP.

I run a completely useless Facebook app. I'm having a problem with PHP's support for integers. Basically, users give themselves ridiculous numbers of points. The current "king" has 102,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,002,557,529,927 points.

PHP does not seem to play well with large integers. When someone tries to add more than a certain amount of points it will fail because PHP treats those numbers as infinite.

Is there some math library for working with ridiculously large numbers? Should I treat the numbers as strings and write my own?

We're talking numbers which are 2^20 digits in length or longer. They don't need to be accurate (any errors are chalked up to the low quality of the app in general) nor does it need to be high performance. I just need something which allows much longer numbers.

(For those of you who are curious, we store our numbers in the cloud, so storage cost isn't a huge issue.)

Answer

Delan Azabani picture Delan Azabani · Sep 18, 2010

PHP uses floats, or signed 32-bit ints to store numbers. Clearly this is not enough. You can use arbitrary precision arithmetic to store these large numbers. See the PHP book on BC Math for more information:

http://php.net/manual/en/book.bc.php