From 89e8f54045e20d07988c6160f453df53fce50d08 Mon Sep 17 00:00:00 2001 From: Mark Dickinson Date: Wed, 31 Oct 2012 19:44:09 +0000 Subject: [PATCH] Issue #16348: Fix incorrect documentation for Decimal.remainder_near. --- Doc/library/decimal.rst | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Doc/library/decimal.rst b/Doc/library/decimal.rst index a4e177ee0b5..697ae877061 100644 --- a/Doc/library/decimal.rst +++ b/Doc/library/decimal.rst @@ -802,12 +802,21 @@ Decimal objects .. method:: remainder_near(other[, context]) - Compute the modulo as either a positive or negative value depending on - which is closest to zero. For instance, ``Decimal(10).remainder_near(6)`` - returns ``Decimal('-2')`` which is closer to zero than ``Decimal('4')``. + Return the remainder from dividing *self* by *other*. This differs from + ``self % other`` in that the sign of the remainder is chosen so as to + minimize its absolute value. More precisely, the return value is + ``self - n * other`` where ``n`` is the integer nearest to the exact + value of ``self / other``, and if two integers are equally near then the + even one is chosen. - If both are equally close, the one chosen will have the same sign as - *self*. + If the result is zero then its sign will be the sign of *self*. + + >>> Decimal(18).remainder_near(Decimal(10)) + Decimal('-2') + >>> Decimal(25).remainder_near(Decimal(10)) + Decimal('5') + >>> Decimal(35).remainder_near(Decimal(10)) + Decimal('-5') .. method:: rotate(other[, context])