Old Forums Fury is correct. Runescape runs in 32 bit Java, and the limit for calculation with integers in that system is (2^31)-1.
If you type that in a calculator, you will realize that that equals 2,147,483,647 - a number we know as max cash.
I doubt Jagex would make the effort to switch to 64 bit just so that we have can have more cash in one stack.
Determinate is right; it is a Java limitation.
But just to expand on what he said...
Java is run primarily by variables, which include booleans,
bytes, chars, doubles, floats,
ints,
longs, and
shorts. The bolded words (bytes, ints, longs, and shorts) are the variables that encompass all integer values (positive or negative numbers without a decimal value). Each of these four variable types has a Width in Bits, and a Range of values that it can be assigned to. These are as follows:
Byte : 8 Bit Width : -128 to 127
Short : 16 Bit Width : -32,768 to 32,767
Int : 32 Bit Width : -2,147,483,648 to 2,147,483,647
Long : 64 Bit Width : -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
As Determinate said, Runescape is run on a 32 Bit (width) Java platform. As you can see, the values that can by assigned to 32 Bit Integer variables (ints) can range from
-2,147,483,648 to 2,147,483,647. Since you can't have negative RSGP, the amount of coins you can have ranges from 1 to 2,147,483,647.
I suspect that they will not change this because Runescape is meant to be available for all who have a computer. From what I understand, 32 Bit programs can run on 64 Bit systems, but not the other way around. Were Jagex to change the type of variables they use to Longs, they would have to make Runescape exclusively for 64 Bit systems.