# Tag Archives: BigInteger

Actionscript:
1. // tracing out large numbers will go into exponent notation
2. trace(1000000000000000000000000);
3. // outputs: 1e+24
4.
5. var a:String =  "1000000000000000000000009";
6. var b:String = "12000000000000000000000001";
7.
10. // outputs: 13000000000000000000000010
11.
12. // unclear what regular addition is doing here:
13. trace(int(a) + int(b));
14. // outputs: -3758096384
15.
18.        var carry:int = 0;
19.        var zeros:int = 0;
20.        var i:int = 0;
21.        var max:int = 0;
22.
23.         // obtain max variable and prepend zeros to the shortest string
24.        if (a.length> b.length){
25.           max = a.length;
26.           zeros = max - b.length;
27.            for (i= 0; i<zeros; i++) {
28.                 b = "0" + b;
29.            }
30.        }else if (b.length>  a.length){
31.            max = b.length;
32.            zeros = max - a.length;
33.            for (i= 0; i<zeros; i++) {
34.                 a = "0" + a  ;
35.             }
36.        }else{
37.            // a and b have same number of digets
38.            max = a.length;
39.        }
40.
41.        // add each character starting with the last (max - 1),
42.        // carry the 1 if the sum has a length of 2
43.        for (i = max - 1;  i> -1; i--){
44.                var sum:String = String(int(a.charAt(i)) + int(b.charAt(i)) + carry);
45.
46.                if (sum.length == 2){
48.                        carry = 1;
49.                }else{
50.                        carry = 0;
52.                }
53.        }
54.        if (carry == 1){
56.        }
58. }

This snippet demos a function called bigAdd(), which can be used to add very large numbers that the standard numerical datatypes (int, Number, etc) won't really work with. It uses a string based addition algorithm.

When I decided to write this snippet I dug around for awhile trying to find a nice elegant algorithm to port, something done without prepending zeros etc.... but I couldn't find one that suited my needs... so I just created this one from scratch. There's room for optimization and improvement but it works well enough for just playing around.

# BigDecimal & BigInteger

A few months back I needed to do some programming with very large numbers. I dug around for awhile and eventually found out that java has a built in BigInteger andBigDecimal class.... I used java to write the program I had in mind, but thought it would be fun to eventually create something similar for ActionScript....

Posted in Number, misc, string manipulation, strings | Also tagged , , , | 2 Comments