dg - 131131 133 bytes
o,d,n=0,0.1,int$inputfloat$input!
for w in(-2..9)=>while(sum$map(i->d*(i*d)**(o+ 10**(-w))/(2.718281**(i*d)))(0..999))<n=>o+=10**(-w)
print o
Since dg produces CPython bytecode this should count for Python as well, but oh... Some examples:
$ dg gam.dg
10
3.3900766499999984
$ dg gam.dg
24
3.9999989799999995
$ dg gam.dg
100
4.892517629999997
$ dg gam.dg
12637326743
13.27087070999999
$ dg gam.dg # i'm not really sure about this one :P it's instantaneous though
28492739842739428347929842398472934929234239432948923
42.800660880000066
$ dg gam.dg # a float example
284253.232359
8.891269689999989
EDIT: Added two bytes because I didn't remember that it should accept floats as well!