The Number class uses an array of Int32 with a base of 10,000. The decimal position is set in a separate variable of type Int32 and the sign is set in a variable typed with a custom enum. Both are added to the display value created in the ToString() override.
E is set to a constant value so it doesn't need to be calculated.
It can get slow when squaring or routing certain large numbers. For this reason I limited the decimal to 300 digits without which irrational numbers like the square route of 2 would calculate till your memory ran out and then crash.
The class contains all the overrides of numeric operators: +, -, /, *, --, ++, ^
...as well as the logical operators: >, <, ==, !=, >=, <=
There are also various special math methods like Round, Pow & Root. These last two were the trickiest parts of the class since they can become endless loops. Therefore I supplied 2 versions of Root & Pow to give the option of calculating to the nth root or not. To see the full class click the link below.