Issue #1869 (and 4707, 5118, 5473, 1456775):  use the new
string <-> float conversion routines to make round(x, n) correctly
rounded for floats x, so that it always agrees with format(x, '.<n>f').

Also fix some other round nuisances, like round(123.456, 1-2**31) giving
an integer rather than a float.
diff --git a/Misc/NEWS b/Misc/NEWS
index f0ed225..295ebd0 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,11 @@
 Core and Builtins
 -----------------
 
+- Issue #1869 (and many duplicates): make round(x, n) correctly
+  rounded for a float x, by using the decimal <-> binary conversions
+  from Python/dtoa.c.  As a consequence, (e.g.) round(x, 2) now
+  consistently agrees with format(x, '.2f').
+
 - Issue #5772: format(1e100, '<') produces '1e+100', not '1.0e+100'.
 
 - Issue #5515: str.format() type 'n' combined with commas and leading