[issue28717] rounding error in % operator

Mark Dickinson report at bugs.python.org
Wed Nov 16 16:37:10 EST 2016


Mark Dickinson added the comment:

You don't say why you think this behaviour is wrong, or what you'd expect to see instead.

Nevertheless, this behaviour is by design: the code `'%.1f' % x` rounds `x` to the nearest one-digit-after-the-point decimal number, and returns a string representation of that number. In the case `x=0.25`, there is no single nearest number: `0.2` and `0.3` are equally close to `0.25`, so a choice between the two has to be made. In keeping with many other languages, Python chooses the value with even last digit. (The original behaviour is inherited from the typical behaviour of the standard library strtod or dtoa functions in C.)

----------
nosy: +mark.dickinson
resolution:  -> not a bug
stage:  -> resolved
status: open -> closed

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue28717>
_______________________________________


More information about the Python-bugs-list mailing list