From: | Chris Browne <cbbrowne(at)acm(dot)org> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: round(50.5) = 50 |
Date: | 2004-03-01 15:13:55 |
Message-ID: | 60y8qkob0s.fsf@dev6.int.libertyrms.info |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Philipp(dot)Hahn(at)informatik(dot)uni-oldenburg(dot)de (Philipp Matthias Hahn) writes:
> # SELECT round(5.5::float4),round(50.5::float4);
> round | round
> -------+-------
> 6 | 50
> (1 row)
>
> I think this is a bug, since I would expect 6 and 51. Doing the same
> without the float4-cast, it works correct. This bug bites me while
> passing parameters to a plpgsql function.
>
> This happens both with Debian 7.3.4-9 and 7.4.1-3
>
> Is this a real bug or am I missing something? A bug fix or work-around
> would be nice.
Why would this be a bug?
A common policy for rounding is "round to even." That has the merit
of not being biased whether you're working with positive or negative
values.
It looks as though your LIBC is using "round-to-even."
--
(reverse (concatenate 'string "gro.mca" "@" "enworbbc"))
http://cbbrowne.com/info/sap.html
"For those of you who are into writing programs that are as obscure
and complicated as possible, there are opportunities for... real fun
here" -- Arthur Norman
From | Date | Subject | |
---|---|---|---|
Next Message | Pavel Stehule | 2004-03-01 16:33:57 | initdb failed for CVS version |
Previous Message | pgsql-bugs | 2004-03-01 13:31:18 | Returned due to virus; was: Re: Re: Thanks! |