Maybe we could use int128 (supported by both MSC and GCC) and sort of fixed point, only removing last 4 or 5 bits of number to specify the precission (as number of significant places).
That would give as ability to represent 10^20 numbers with up to 10^-16 precision (if I have computed numbers well .