Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #51338

Division and multiplication have a different behavior in the overflow case

From Marco <m.b@gmail.com>
Newsgroups comp.lang.python
Subject Division and multiplication have a different behavior in the overflow case
Date 2013-07-27 19:48 +0200
Organization Aioe.org NNTP Server
Message-ID <kt115f$8ec$1@speranza.aioe.org> (permalink)

Show all headers | View raw


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:

     >>> 2**1028 / 2**-2
     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:

     >>> 2 ** 1025 / 2**10
     3.511119404027961e+305

Why the behavior is different in the case of the multiplication?

     >>> 2 ** 1025 * 2**-10
     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.
-- 
Marco Buttu

Back to comp.lang.python | Previous | NextNext in thread | Find similar | Unroll thread


Thread

Division and multiplication have a different behavior in the overflow case Marco <m.b@gmail.com> - 2013-07-27 19:48 +0200
  Re: Division and multiplication have a different behavior in the overflow case Terry Reedy <tjreedy@udel.edu> - 2013-07-27 16:56 -0400

csiph-web