Division and multiplication have a different behavior in the overflowcase

M

Marco

In Python 3, when we hava a division and both the result and at least
one operand are too large to convert to float, we get an exception:
Traceback (most recent call last):
File "<input>", line 1, in <module>
OverflowError: long int too large to convert to float

When the result is inside the limits, we get the right value:
3.511119404027961e+305

Why the behavior is different in the case of the multiplication?
Traceback (most recent call last):
File "<input>", line 1, in <module>
OverflowError: long int too large to convert to float

I think the multiplication should have the same behavior than the
division:

* `inf` or `-inf` when the operands are inside the limits,
but the result is not
* `OverflowError` when the result, and at least one operand,
are out of range.
 
T

Terry Reedy

In Python 3, when we hava a division and both the result and at least
one operand are too large to convert to float, we get an exception:

int/float gets converted to float/float and the int to float conversion
is not possible. The result is irrelevant since it never gets calculated.
Traceback (most recent call last):
File "<input>", line 1, in <module>
OverflowError: long int too large to convert to float

When the result is inside the limits, we get the right value:

3.511119404027961e+305

This must be doing integer division and then converting the result to
float, which it can.
Why the behavior is different in the case of the multiplication?

Mathematically this is the same thing, but computationally, it is not
and you cannot expect to get the same answer. Like the first example,
2**-10 is a float, so 2**1025 must be converted to float to do float
multiplication. But that is not possible.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,954
Messages
2,570,116
Members
46,704
Latest member
BernadineF

Latest Threads

Top