I'm porting a JavaScript game into C#, an interesting feature of this game is that there are dozens of resources which grow from fractions per second to over e^thousands per second.
I need to be able to do standard math operations / string formats on these numbers many times a second ... mostly addition as resources accumulate and division to show how many of x I can buy with y or how long it'll take to complete a goal given a per second progress.
In C# I've tried using various 3rd party large number solutions (Rational / BigDecimal / BigFloat) all of which use System.Numerics.BigInteger under the hood ... and I've tried just using BigIntegers. All of these are functional but suffer from unacceptable performance.
My use-case doesn't need arbitrarily large (expected practical range is +/- e5000) or precise (6 decimal places is comfortably enough) numbers but I do need simple math operations to be significantly faster than BigInteger will provide. What are potential solutions to this problem?
Edit 1 - the JS game uses BigDecimal.js ... which also has performance issues later game when the numbers get really large.
Edit 2 - For anyone down-voting I'd really appreciate an explanation why.
Edit 3 - rephrased as a single question / to be more on topic.