Peter Otten writes:
> Victor Eijkhout wrote:
> 
> > I have two long ints, both too long to convert to float, but their
> > ratio is something reasonable. How can I compute that? The obvious
> > "(1.*x)/y" does not work.
> 
> >>> import fractions
> >>> x = 12345 * 10**1000
> >>> y = 765 * 10**1000
> >>> float(x)
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> OverflowError: long int too large to convert to float
> >>> fractions.Fraction(x, y)
> Fraction(823, 51)
> >>> float(_)
> 16.137254901960784

Logarithms agree to 13 decimal digits or so:

>>> math.exp(math.log(x) - math.log(y))
16.13725490196353
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to