Merged revisions 74709 via svnmerge from

svn+ssh://pythondev@www.python.org/python/branches/py3k

................
  r74709 | mark.dickinson | 2009-09-07 19:08:12 +0100 (Mon, 07 Sep 2009) | 9 lines

  Merged revisions 74708 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r74708 | mark.dickinson | 2009-09-07 19:04:58 +0100 (Mon, 07 Sep 2009) | 2 lines

    #Issue 6795:  Fix infinite recursion in long(Decimal('nan'));  change int(Decimal('nan')) to raise ValueError instead of either returning NaN or raising InvalidContext.
  ........
................
This commit is contained in:
Mark Dickinson 2009-09-08 19:23:44 +00:00
parent 0e8b8877db
commit 8fde3da126
3 changed files with 11 additions and 3 deletions

View file

@ -1553,10 +1553,9 @@ class Decimal(object):
"""Converts self to an int, truncating if necessary."""
if self._is_special:
if self._isnan():
context = getcontext()
return context._raise_error(InvalidContext)
raise ValueError("Cannot convert NaN to integer")
elif self._isinfinity():
raise OverflowError("Cannot convert infinity to int")
raise OverflowError("Cannot convert infinity to integer")
s = (-1)**self._sign
if self._exp >= 0:
return s*int(self._int)*10**self._exp