# [PD] Long long numbers

Mathieu Bouchard matju at artengine.ca
Fri Dec 21 18:11:17 CET 2007

```On Fri, 21 Dec 2007, Dafydd Hughes wrote:

> Working on a project that needs really long numbers. I'm sure there's a
> way of doing it that's obvious to those with better math brains and more
> experience, but I basically need to keep Pd from slipping into
> scientific notation.

Everybody learned that at the beginning of elementary school, it's just
not obvious that it's the same thing, only obvious in retrospect. When you
compute one digit at a time on paper, that's pretty much the same thing
that you have to do to work with long numbers that don't fit in float32.

However, you don't have to do it in base 10. Computers work with base 2,
but computing many bits at once, so you could argue that you are really
working in base 256 (uint8) or in base 4294967296 (uint32). For floats
it's more complicated, you could do up to base 16777216, perhaps less.

But there's nothing preventing you from trying out base 10, or base
1000 or 1000000 (group digits in packs of 3 or 6 for more efficiency:
123456789 becomes list 123 456 789 or list 123 456789). There are actually
some libraries for doing that (in C or Perl or other), because several
uses for long digits are much better if you stick in the same base as what
you are gonna use in the end (e.g. finance).

It might be easier to use another programming language to do those
calculations. E.g. Ruby supports this since a long time, and Tcl has it
since some preview of version 8.5. I don't know much about others, but I
expect most programming languages to have a library for long ints.

_ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801, Montréal QC Canada
```