Ciao, gli intervalli di double e Long sono:
'double = -1,79769313486232E308 e -4,94065645841247E-324 per i valori negativi
4,94065645841247E-324 e 1,79769313486232E308 per quelli positivi

'Long = intervallo fra -2.147.483.648 e 2.147.483.647.

Con double é difficile che vada in overflow. Comunque se sei sicuro che NON si tratta di una funzione ricorsiva, prova a dividere il numero di base per 1.000.000 o più, per poi moltiplicarlo per lo stesso fattore.