@@ -897,6 +897,48 @@ Decimal objects
897897 :const: `Rounded `. If given, applies *rounding *; otherwise, uses the
898898 rounding method in either the supplied *context * or the current context.
899899
900+ Decimal numbers can be rounded using the :func: `.round ` function:
901+
902+ .. describe :: round(number)
903+ .. describe :: round(number, ndigits)
904+
905+ If *ndigits * is not given or ``None ``,
906+ returns the nearest :class: `int ` to *number *,
907+ rounding ties to even, and ignoring the rounding mode of the
908+ :class: `Decimal ` context. Raises :exc: `OverflowError ` if *number * is an
909+ infinity or :exc: `ValueError ` if it is a (quiet or signaling) NaN.
910+
911+ If *ndigits * is an :class: `int `, the context's rounding mode is respected
912+ and a :class: `Decimal ` representing *number * rounded to the nearest
913+ multiple of ``Decimal('1E-ndigits') `` is returned; in this case,
914+ ``round(number, ndigits) `` is equivalent to
915+ ``self.quantize(Decimal('1E-ndigits')) ``. Returns ``Decimal('NaN') `` if
916+ *number * is a quiet NaN. Raises :class: `InvalidOperation ` if *number *
917+ is an infinity, a signaling NaN, or if the length of the coefficient after
918+ the quantize operation would be greater than the current context's
919+ precision. In other words, for the non-corner cases:
920+
921+ * if *ndigits * is positive, return *number * rounded to *ndigits * decimal
922+ places;
923+ * if *ndigits * is zero, return *number * rounded to the nearest integer;
924+ * if *ndigits * is negative, return *number * rounded to the nearest
925+ multiple of ``10**abs(ndigits) ``.
926+
927+ For example::
928+
929+ >>> from decimal import Decimal, getcontext, ROUND_DOWN
930+ >>> getcontext().rounding = ROUND_DOWN
931+ >>> round(Decimal('3.75')) # context rounding ignored
932+ 4
933+ >>> round(Decimal('3.5')) # round-ties-to-even
934+ 4
935+ >>> round(Decimal('3.75'), 0) # uses the context rounding
936+ Decimal('3')
937+ >>> round(Decimal('3.75'), 1)
938+ Decimal('3.7')
939+ >>> round(Decimal('3.75'), -1)
940+ Decimal('0E+1')
941+
900942
901943.. _logical_operands_label :
902944
0 commit comments