[ python-Bugs-1202946 ] Problem with abs function
SourceForge.net
noreply at sourceforge.net
Thu May 26 09:12:13 CEST 2005
Bugs item #1202946, was opened at 2005-05-16 11:32
Message generated for change (Comment added) made by rhettinger
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1202946&group_id=5470
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Python Interpreter Core
Group: Python 2.4
>Status: Closed
>Resolution: Out of Date
Priority: 5
Submitted By: ric-b (ric-b)
Assigned to: Nobody/Anonymous (nobody)
Summary: Problem with abs function
Initial Comment:
On windows version I get :
>>> abs(-9999999999999999999)
Traceback (most recent call last):
File "<pyshell#7>", line 1, in -toplevel-
abs(-9999999999999999999)
OverflowError: long too big to convert
does not handle new longs.
I am using the following work around:
t = a - b # calc t = abs(a - b)
if t < 0 :
t *= -1
----------------------------------------------------------------------
>Comment By: Raymond Hettinger (rhettinger)
Date: 2005-05-26 02:12
Message:
Logged In: YES
user_id=80475
No response from the OP.
Presuming that Terry's explanation is correct.
Please re-open if presented with evidence to the contrary.
----------------------------------------------------------------------
Comment By: Terry J. Reedy (tjreedy)
Date: 2005-05-18 21:10
Message:
Logged In: YES
user_id=593130
Python 2.2.1 (#34, Apr 9 2002, 19:34:33) [MSC 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more
information.
>>> abs(-9999999999999999999)
9999999999999999999L
Ric-b: what windows version? Even older? If the problem is not
with current or future (cvs) Python, please close this.
----------------------------------------------------------------------
Comment By: Nick Coghlan (ncoghlan)
Date: 2005-05-18 06:53
Message:
Logged In: YES
user_id=1038590
I tried the OP's example in wxPython's PyShell as well as in
the standard interpreter, and got the same result as Raymond.
However, I was able to provoke a similar looking error by
trying to convert a large long to a float (and the exception
is telling the plain truth - a double precision float can't
handle a number that big):
Py> num = 1.0
Py> lng =
-999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999999999
999999999999
Py> num += abs(lng)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
OverflowError: long int too large to convert to float
----------------------------------------------------------------------
Comment By: Raymond Hettinger (rhettinger)
Date: 2005-05-16 12:33
Message:
Logged In: YES
user_id=80475
That's odd. It works for me:
Python 2.4.1 (#65, Mar 30 2005, 09:13:57) [MSC v.1310 32 bit
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more
information.
>>> abs(-9999999999999999999)
9999999999999999999L
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1202946&group_id=5470
More information about the Python-bugs-list
mailing list