New submission from Alexander Belopolsky <belopol...@users.sourceforge.net>:

>From issue1289118, msg106389:

"""
>>> from datetime import timedelta as d
>>> [d(microseconds=i + .5)//d.resolution for i in range(-10,10)]
[-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Should this be considered a bug?

For comparison,

>>> [d.resolution*(i+0.5)//d.resolution for i in range(-10,10)]
[-10, -8, -8, -6, -6, -4, -4, -2, -2, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10]

and
>>> [round(i+0.5) for i in range(-10,10)]
[-10, -8, -8, -6, -6, -4, -4, -2, -2, 0, 0, 2, 2, 4, 4, 6, 6, 8, 8, 10]

I checked the documentation and while it says: "If any argument is a float and 
there are fractional microseconds, the fractional microseconds left over from 
all arguments are combined and their sum is rounded to the nearest 
microsecond." it does not specify how half-integers should be handled.

While it may not be a bug in strict sense, it looks like the code in question 
can be improved. 
"""

----------
assignee: belopolsky
messages: 106793
nosy: belopolsky, haypo, mark.dickinson, mcherm, rhettinger, stutzbach, tim_one
priority: normal
severity: normal
stage: unit test needed
status: open
title: Rounding in timedelta constructor is inconsistent with that in timedelta 
arithmetics
type: feature request

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue8860>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to