Timestamp precision and rounding

Jeff Boes <jboes@nexcerpt.com>

From: Jeff Boes <jboes@nexcerpt.com>
To: pgsql-general@postgresql.org
Date: 2004-06-03T13:27:54Z
Lists: pgsql-general
(asked last week on .questions, no response)

Can anyone explain why this happens?  (under 7.4.1)

    select '2004-05-27 09:00:00.500001-04' :: timestamp(0) ;

          timestamp
    ---------------------
     2004-05-27 09:00:01


    select '2004-05-27 09:00:00.500000-04' :: timestamp(0) ;

          timestamp
    ---------------------
     2004-05-27 09:00:00


That is, why doesn't the second operation result in the same timestamp 
as the first? Is it a floating-point representation issue, or are the 
mathematical rules of rounding not being followed correctly (as I 
understand them, anyway)?

-- 
Jeff Boes                                      vox 269.226.9550 ext 24
Database Engineer                                     fax 269.349.9076
Nexcerpt, Inc.                                 http://www.nexcerpt.com
            ...Nexcerpt... Extend your Expertise