Neaten-up the fix to issue 11830
This commit is contained in:
parent
4ded0c0462
commit
d92232976e
|
@ -1683,7 +1683,7 @@ class Decimal(object):
|
||||||
self = _dec_from_triple(self._sign, '1', exp_min-1)
|
self = _dec_from_triple(self._sign, '1', exp_min-1)
|
||||||
digits = 0
|
digits = 0
|
||||||
rounding_method = self._pick_rounding_function[context.rounding]
|
rounding_method = self._pick_rounding_function[context.rounding]
|
||||||
changed = getattr(self, rounding_method)(digits)
|
changed = rounding_method(self, digits)
|
||||||
coeff = self._int[:digits] or '0'
|
coeff = self._int[:digits] or '0'
|
||||||
if changed > 0:
|
if changed > 0:
|
||||||
coeff = str(int(coeff)+1)
|
coeff = str(int(coeff)+1)
|
||||||
|
@ -1790,14 +1790,14 @@ class Decimal(object):
|
||||||
return -self._round_down(prec)
|
return -self._round_down(prec)
|
||||||
|
|
||||||
_pick_rounding_function = dict(
|
_pick_rounding_function = dict(
|
||||||
ROUND_DOWN = '_round_down',
|
ROUND_DOWN = _round_down,
|
||||||
ROUND_UP = '_round_up',
|
ROUND_UP = _round_up,
|
||||||
ROUND_HALF_UP = '_round_half_up',
|
ROUND_HALF_UP = _round_half_up,
|
||||||
ROUND_HALF_DOWN = '_round_half_down',
|
ROUND_HALF_DOWN = _round_half_down,
|
||||||
ROUND_HALF_EVEN = '_round_half_even',
|
ROUND_HALF_EVEN = _round_half_even,
|
||||||
ROUND_CEILING = '_round_ceiling',
|
ROUND_CEILING = _round_ceiling,
|
||||||
ROUND_FLOOR = '_round_floor',
|
ROUND_FLOOR = _round_floor,
|
||||||
ROUND_05UP = '_round_05up',
|
ROUND_05UP = _round_05up,
|
||||||
)
|
)
|
||||||
|
|
||||||
def fma(self, other, third, context=None):
|
def fma(self, other, third, context=None):
|
||||||
|
@ -2504,8 +2504,8 @@ class Decimal(object):
|
||||||
if digits < 0:
|
if digits < 0:
|
||||||
self = _dec_from_triple(self._sign, '1', exp-1)
|
self = _dec_from_triple(self._sign, '1', exp-1)
|
||||||
digits = 0
|
digits = 0
|
||||||
this_function = getattr(self, self._pick_rounding_function[rounding])
|
this_function = self._pick_rounding_function[rounding]
|
||||||
changed = this_function(digits)
|
changed = this_function(self, digits)
|
||||||
coeff = self._int[:digits] or '0'
|
coeff = self._int[:digits] or '0'
|
||||||
if changed == 1:
|
if changed == 1:
|
||||||
coeff = str(int(coeff)+1)
|
coeff = str(int(coeff)+1)
|
||||||
|
|
Loading…
Reference in New Issue