"Gaietti, Mauro \(SELEX GALILEO Guest, Italy\)" <mauro.gaie...@guests.selexgalileo.com> writes: > This query: > select round(0.5), round(0.5::integer), round(0.5::bigint), round( > 0.5::float ), round( 0.5::double precision ),round(cast(0.5 as double > precision )),round(cast(0.5::double precision as numeric )); has strange > result:
> 1 1 1 0 0 0 1 > Is this correct? On most machines the float4/float8 operations follow the IEEE-754 spec's "round to nearest even" rule for such cases. I think all the other ones are "add 0.5 and truncate" implementations. It's unlikely we'll mess with either; and *highly* unlikely that we would change the float behavior since that's not even under our direct control (the hardware or libm is what's doing that). There's some case to be made for making numeric and integer math do it the IEEE way, but I think that would displease at least as many people as it pleased ... regards, tom lane -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general