The patch applies cleanly, all test cases are ok. To be commited, documentation should be created for this, would you please take care of it? Also, some lines for NEWS will be welcomed. Thank you!!
I've added some rudimentary documentation and a line for NEWS. Before the docs for this patch can really be finished, we'll need to figure out how we want to document ABCs. I'll think about that and probably send some more patches, but I don't think that should block the implementation.
I've committed this as r59671, except that round() returns a float again to make sure we keep compatibility. Let me know if you find anything that needs fixing.