Creating very long decimals

I am trying to make a program that will calculate a huge decimal place. Something that is out to the 100,000th place, or possibly more. I am using taylor series to approximate pi as my testing number. The first 16 digits are a given since double will automatically be to that extent. I was thinking of sprintf-ing the *n*th number in scientific notation so I can get it to drop all the leading zeros. From there I'd chop off the decimal points and take the whole number. From there it'd be added to a string at the end. It would only find one decimal point at a time, but I think it should work. Only problem with this is the taylor series for pi is exponentially decreasing. So getting one decimal at a time does not work (if one is .00003948739743 and another is .000000004343 the numbers between the 3 on the first and the 4 on the second will be lost). Unless I took the entire scientific number, passed it to a user-defined function to take off the "e-X" at the end, and the decimal point, and from there add it to the string.

Does anyone have any other/better ideas for getting a very long decimal place? I've done some searching and nothing really helpful has popped up.

EDIT: to save on having to store this in a double or float, I only want to calculate a small chunk of the decimals at a time, and strcat them to a buffer and paste it in to a window for verification.