.. function:: round(x[, n])
Return the floating point value *x* rounded to *n* digits after the decimal
- point. If *n* is omitted, it defaults to zero. Values are rounded to the
+ point. If *n* is omitted, it defaults to zero. Delegates to
+ ``x.__round__(n)``.
+
+ For the built-in types supporting :func:`round`, values are rounded to the
closest multiple of 10 to the power minus *n*; if two multiples are equally
close, rounding is done toward the even choice (so, for example, both
- ``round(0.5)`` and ``round(-0.5)`` are ``0``, and ``round(1.5)`` is
- ``2``). Delegates to ``x.__round__(n)``.
+ ``round(0.5)`` and ``round(-0.5)`` are ``0``, and ``round(1.5)`` is ``2``).
+ The return value is an integer if called with one argument, otherwise of the
+ same type as *x*.
.. function:: set([iterable])
"round(number[, ndigits]) -> floating point number\n\
\n\
Round a number to a given precision in decimal digits (default 0 digits).\n\
-This returns an int when called with one argument, otherwise a float.\n\
-Precision may be negative.");
+This returns an int when called with one argument, otherwise a the\n\
+same type as the number. ndigits may be negative.");
static PyObject *