SF bug #1071588 coercing decimal to int doesn't work between -1 and 1
diff --git a/Lib/decimal.py b/Lib/decimal.py
index 6ffbd18..f9c065f 100644
--- a/Lib/decimal.py
+++ b/Lib/decimal.py
@@ -1410,14 +1410,14 @@
return context._raise_error(InvalidContext)
elif self._isinfinity():
raise OverflowError, "Cannot convert infinity to long"
- if not self:
- return 0
- sign = '-'*self._sign
if self._exp >= 0:
- s = sign + ''.join(map(str, self._int)) + '0'*self._exp
- return int(s)
- s = sign + ''.join(map(str, self._int))[:self._exp]
- return int(s)
+ s = ''.join(map(str, self._int)) + '0'*self._exp
+ else:
+ s = ''.join(map(str, self._int))[:self._exp]
+ if s == '':
+ s = '0'
+ sign = '-'*self._sign
+ return int(sign + s)
def __long__(self):
"""Converts to a long.