]> granicus.if.org Git - python/commit
SF bug 661086: datetime.today() truncates microseconds.
authorTim Peters <tim.peters@gmail.com>
Thu, 2 Jan 2003 16:32:54 +0000 (16:32 +0000)
committerTim Peters <tim.peters@gmail.com>
Thu, 2 Jan 2003 16:32:54 +0000 (16:32 +0000)
commit5d644dd25ac3100d0e8bc795ae57a6b8061fefd4
treecad48fa944d2b18ca8f6b582dbf70451bb4333b3
parente55534665f95a2cf8c866803e847573607d44798
SF bug 661086: datetime.today() truncates microseconds.
On Windows, it was very common to get microsecond values (out of
.today() and .now()) of the form 480999, i.e. with three trailing
nines.  The platform precision is .001 seconds, and fp rounding
errors account for the rest.  Under the covers, that 480999 started
life as the fractional part of a timestamp, like .4809999978.
Rounding that times 1e6 cures the irritation.

Confession:  the platform precision isn't really .001 seconds.  It's
usually worse.  What actually happens is that MS rounds a cruder value
to a multiple of .001, and that suffers its own rounding errors.

A tiny bit of refactoring added a new internal utility to round
doubles.
Modules/datetimemodule.c