You’re not looking for STR$(x). You need to work with X$ directly.
X$ = “12345678901234567890123456789012345678901234567890”
Y$ = “98765432109876543210987654321098765432109876543210”
Z$ = X$ + Y$
What you want is a math routine to basically do the above, which since our strings are the same size, is fairly simple. In this case, you just need a DO..LOOP to go from right to left, and add the current positions and any carry-over.
0 + 0 = 0
9 + 1 = 10, so second digit is 0, carry the 1 From the ten’s position.
8 + 2 + 1(the carry over) = 11. Third digit is 1, carry the 1 From the ten’s position.
....continue until you go through the whole string.
When dealing with decimals, it’s the same process; you just convert both string values to the same number of decimal places. 0.0100000 + 0.987654
You’ll need to write routines for string addition, multiplication, subtraction, division, ect as needed, and then you can set your own precision limits to whatever you desire. Just be warned: it’ll be much slower than binary math.